如何拥有一个无形的启动表单?

use*_*018 10 vb.net visual-studio-2010 winforms

我有一个应用程序是项目解决方案的一部分.在这个项目中,我希望它启动窗体是不可见的,但仍然在该窗体可见的托盘中有一个通知图标.

我知道,加me.hideform_load不能正常工作.我尝试添加一个实例化启动表单的模块,然后将其设置为启动对象.虽然这也不起作用.我的想法已经不多了,这个形式看不见了.任何人都可以帮忙吗?我正在使用VB.NET.

Han*_*ant 22

将其粘贴到您的表单代码中:

Protected Overrides Sub SetVisibleCore(ByVal value As Boolean)
    If Not Me.IsHandleCreated Then
        Me.CreateHandle()
        value = False
    End If
    MyBase.SetVisibleCore(value)
End Sub
Run Code Online (Sandbox Code Playgroud)

可行的方式是,第一个显示表单的请求,由Application类完成,此代码将Visible属性重写为False.在此之后,表单将正常运行,您可以调用Show()使其可见,使用Close()关闭它,即使它从未可见.请注意,Load事件在显示之前不会触发,因此请务必将事件处理程序中的任何代码(如果有)移动到构造函数或此覆盖.

  • 很好的解决方案。对我最有效。所有的不透明度、隐藏、最小化选项都会在操作前短暂闪烁。这确保根本没有可见性。你只需要注意你在 mybase.load 下的内容,可能是 sub it + 从上面覆盖调用。其他选项是覆盖中的 me.show()。 (2认同)

Unh*_*ean 6

把它放在表格的Shown事件中

Me.Visible = False
Run Code Online (Sandbox Code Playgroud)


小智 6

最简单的方法是将窗体的不透明度设置为0%.如果要显示,请将其重新设置为100%