是的,在Windows窗体中,Visible属性很重要,这实际上是创建句柄并导致OnLoad()运行的原因。换句话说,直到它可见,该窗口才存在。并且它将忽略撤消此操作的尝试。
如果您使用NotifyIcon,通常仍然想创建该句柄但不使窗口可见是很常见的。您可以通过重写SetVisibleCore实现此目的:
protected override void SetVisibleCore(bool value) { if (!this.IsHandleCreated) { value = false; CreateHandle(); } base.SetVisibleCore(value); }请注意,直到窗口实际可见之前,OnLoad仍然不会运行,因此如有必要,请将代码移入构造函数。只需在NotifyIcon的上下文菜单事件处理程序中调用Show()即可使窗口可见。



