微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使初始forms最初不可见或隐藏

如何使初始forms最初不可见或隐藏

我有一个2表单的GUI项目和表单必须分开显示。 即当表格1显示时,所有其他表格必须隐藏。

我可以隐藏所有其他表单,但是我无法隐藏启动表单,以至于我的应用程序在系统托盘中的图标。

例如,防火墙/防病毒和即时消息传递应用程序可以这样做,以便在后台运行,并且仍然可以从系统托盘访问用户

任何API来防止Windows 8进入连接待机模式?

WindowsPrincipal.IsInRole考虑到组内的组?

当声音输出停止时,使用Powershell自动点击鼠标?

如何模块化PowerShell脚本

如何从键盘上读取字符?

在Windows启动时启动wpf应用程序

当Windows任务计划程序启动程序时如何获取应用程序文件

强制Windows在closures时等待服务停止

如何以编程方式closures或打开“Windowsfunction”

如何使用WinAPI读取MessageBox文本

我猜你在问什么是如何使窗体不出现在任务栏,只出现在系统托盘,就像一个即时通讯或反病毒?

如果是这样,只需将Form的ShowInTaskbar属性设置为false 。

至于使初始表单不可见,您将不得不在Application.Run使用Application.Run而不是主表单。

将ShowInTaskbar属性设置为false,并将WindowState设置为最小化

微软就此写了一个网页。 它给出了一个使用ApplicationContext的例子。 基本上,而不是有一个窗体应用程序,你有一个应用程序运行Main()和Main然后打开窗体。

http://msdn.microsoft.com/en-us/library/Aa984417

然而,这样你就失去了功能,因为你必须禁用“应用程序框架”。 它会让你的Windows丑陋。

这是一个不同的解决方案,几乎是一个黑客,但不是太糟糕。 当Windows启动您的表单应用程序并将Visible设置为true时,会导致对SetVisibleCore的调用。 您可以覆盖该功能。 在第一次调用SetVisibleCore ,将其设置为false。 从那时起,只要通过。

请记住,如果表单没有显示, Form.Load将不会触发您的应用程序启动,因此将所有代码移到Sub New() 。

这是整个事情:

Public Sub New() ' This call is required by the designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. config.LoadFromregistry() 'this gets config.StartMinimized from the registry ' Code that needs to run at start,even if the form isn't showing,' should be here. Form.Load will only happen when the Form is actually ' visible for the first time. End Sub Dim FirstSetVisible As Boolean = True Protected Overrides Sub SetVisibleCore(ByVal value As Boolean) If config.StartMinimized And FirstSetVisible Then MyBase.SetVisibleCore(False) 'ignore Windows attempt to set Visible FirstSetVisible = False 'never do this again Else MyBase.SetVisibleCore(value) End If End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐