Tas*_*han 0 c# desktop-application windows-7 winforms
我正在尝试制作一个隐藏的桌面应用程序,但只会在一段时间后显示.我试图在窗口加载事件中设置Visible = false但它仍然显示.
Visible属性在Winforms中是一个大问题,将其设置为true是导致创建本机Windows窗口的原因.其中一个副作用是在OnLoad方法或Load事件中将其设置为false不起作用.Hide()没有什么特别之处,只是将Visible设置为false,因此也不起作用.
重写SetVisibleCore()是一种方法.然而,重要的是您仍然可以创建本机窗口.否则你不能关闭()表格.看起来像这样:
protected override void SetVisibleCore(bool value) {
if (!IsHandleCreated && value) {
value = false;
CreateHandle();
}
base.SetVisibleCore(value);
}
Run Code Online (Sandbox Code Playgroud)
您现在可以调用Show()或设置Visible = true以使窗口随时可见.并且即使您从未将其显示,也请调用Close().这是使用仅通过上下文菜单显示的弹出窗口实现NotifyIcon的好方法.
请注意,这有副作用,OnLoad()方法和Load事件直到第一次实际可见时才会运行.您可能需要移动代码.
归档时间: |
|
查看次数: |
3426 次 |
最近记录: |