2014-05-24 63 views
0

我正在做一個全屏/正常屏幕按鈕,但邏輯突然開始循環從全屏幕到正常大小每個按鈕單擊,它在一個點上工作這裏是一個片段:在VB編程全屏/正常屏幕大小按鈕

If ScreenMode.Text = "Normal Size" Then 
     ScreenMode.Text = "Full Size" 
     Me.WindowState = FormWindowState.Normal 
     Me.Width = 563 
     Me.Height = 447 
     Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable 
     Me.TopMost = False 
    ElseIf Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable Then 
     ScreenMode.Text = "Normal Size" 
     Me.WindowState = FormWindowState.Maximized 
     Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
     Me.TopMost = True 
    End If 
+0

如果ScreenMode.Text =「Normal Size」,爲什麼要設置ScreenMode.Text =「Full Size」? – Dnyanesh

+3

問題在哪裏? – BaSsGaz

+0

我正在試驗if語句來解決問題,但無論elif和if語句在按下按鈕時是否完全執行,都會發生什麼。 – user3671372

回答

0
Private isFullScreen As Boolean = False 
Private Sub toggleFullScreen() 
    isFullScreen = Not isFullScreen 
    If isFullScreen Then 
     MaximizeBox = False 
     MinimizeBox = False 
     TopMost = True 
     FormBorderStyle = FormBorderStyle.None 
     WindowState = FormWindowState.Maximized 
    Else 
     MaximizeBox = True 
     MinimizeBox = True 
     TopMost = False 
     FormBorderStyle = FormBorderStyle.Sizable 
     WindowState = FormWindowState.Normal 
    End If 
End Sub 

但我實在看不出區別,必須在你的if語句的邏輯。只要你沒有手動設置全屏模式,使用布爾值就沒有問題。但你不應該,因爲你可以調用toggleFullScreen()。

一些更多的樂趣,你可以通過表單的ByRef它,即:

Public Sub toggleFullScreen(ByRef theForm As Form) 
If theForm.FormWindowState = FormWindowState.Normal Then 
    With theForm 
     .MaximizeBox = False 
     .MinimizeBox = False 
     .TopMost = True 
     .FormBorderStyle = FormBorderStyle.None 
     .WindowState = FormWindowState.Maximized 
    End With 
End If 
etc... 
+0

第一個是完全相同的結果。 – user3671372

+0

那麼問題是,你處理的事件是全屏函數,還是其他代碼捕獲的大小/狀態更改以及更改窗口屬性......它肯定是某種東西。 – porkchop

1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If Me.WindowState = FormWindowState.Normal Then 
     Me.WindowState = FormWindowState.Maximized 
     Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None 
     Me.TopMost = True 
    Else 
     Me.WindowState = FormWindowState.Normal 
     Me.Width = 563 
     Me.Height = 447 
     Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable 
     Me.TopMost = False 
    End If 
End Sub 
-2

私人小組PictureBox2_Click(發送者爲對象,E作爲EventArgs的)把手PictureBox2.Click 如果我。的WindowState = FormWindowState.Normal然後 Me.WindowState = FormWindowState.Maximized Me.TopMost =真 否則 Me.WindowState = FormWindowState.Normal Me.TopMost =假 結束如果 End Sub