【问题标题】:Hide main Form on load加载时隐藏主表单
【发布时间】:2014-11-20 17:46:45
【问题描述】:
  Private Sub FrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If My.Computer.Registry.GetValue("HKEY_CURRENT_USER\1227", "1227", Nothing) Is Nothing Then
            Me.Show()
        Else
            Form2.Show()
            Me.Hide()
        End If
End Sub

这段代码怎么可能不起作用? .即使注册表存在也不会隐藏我的表单

【问题讨论】:

  • Form2.Show() 和 Me.Hide() 的顺序重要吗?试着把 Me.Hide() 放在第一位。
  • 它不会在表单加载时隐藏主表单,不知道该怎么做。
  • 表单加载在表单第一次显示时运行;如果您想完全避免显示表单,请从 Sub Main 启动应用程序并显示您想要的。 see this link 了解如何
  • 所以这就像第三种形式决定首先显示哪个形式?
  • 您的 Load 事件处理程序运行 因为 Show() 方法已被调用,您无法取消显示它。请改用Startup event,分配 Me.MainForm 属性。

标签: .net vb.net


【解决方案1】:

你不能那样做。

你有几个选择:

1.) 你需要按照 Plutonix 所说的去做。

2.) 在加载后处理事件中主窗体的隐藏:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Form2.Show()
    Hide()
End Sub

3.) 最后,使用事件处理程序(加载后,它将运行事件):

Private Sub FrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Timer1.Start()
End Sub

Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    'Perform your if logic here...
    Form2.Show()
    Timer1.Stop()
End Sub

Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Form1.Hide()
End Sub

如您所见,显然有几个选项,但这是一个简单的解决方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多