2014-02-09 24 views
0

我想知道在VB 2010中是否可以在單擊同一個對象時更改CheckBox的CheckChanged。例如:如何在VB 2010中單擊相同的對象時更改CheckChanged?

我有一個名爲pic1 1張圖片框和一個名爲chck1,如果我點擊pic1,將chck1必須選中的複選框,但如果我再次pic1點擊,chck1必須取消選中,我再次點擊pic1chck1必須再次檢查等。

我真的沒有一個想法,如果它在VB 2010中工作或不可能,我希望有人能幫助我。非常感謝你。

+0

Winforms或WPF? – Steve

+0

史蒂夫先生,它是Winforms,對不起,我忘了把它包括在我的問題上。 – Haqua

+0

你認爲用戶會點擊什麼?一個複選框說「點擊我」,一張圖片說「看着我」。一位偶然發現點擊圖片作品的用戶將會大發雷竹。創建一個理智的UI可以解決許多編程問題。 –

回答

1

如果它是一個WinForm,那麼你就必須實現這樣的事情:

你有你的圖片框和你的複選框,然後你只需要一個clickHandler事件添加到您的PictureBox這樣的:

private void pictureBox1_Click(object sender, EventArgs e) 
    { 
     checkBox1.Checked = !checkBox1.Checked; 
    } 

此方法始終否定該複選框的選中狀態(它比的if/else方式簡單)

checkbox1.Checked包含檢查狀態,所以這是你如何取消/檢查。

編輯:我這樣做是在C#,對不起,VB.NET

它會是這樣的

Private Sub pictureBox1_Click(sender As Object, e As EventArgs) 
     checkBox1.Checked = Not checkBox1.Checked; 
    End Sub 
+0

OP是要求VB.NET代碼。否則正確。 – Neolisk

+0

謝謝,我剛剛添加了VB實現:D – Visionstar

1

在WinForms應用程序只需要添加的事件處理程序點擊您的PictureBox事件。
你可以,可以輕鬆地與窗體設計器,或者,如果使用代碼,然後寫

' In the form constructor 
Public Sub Form1() 
    ' First initialize your form controls' 
    InitializeComponent() 
    ' then add the event handler for the picturebox click event' 
    AddHandler pic1.Click, AddressOf pic1_Click 
End Sub 

Private Sub pic1_Click(sender As Object, e As EventArgs) 

    ' toogle the checked state of the checkbox' 
    chk1.Checked = Not chk1.Checked 

End Sub 

由於從Mr Neolisk下面說你也可以縮短這個代碼只需添加Handles clausepic1_Click事件從而消除在代碼Form構造函數

Private Sub pic1_Click(sender As Object, e As EventArgs) Handles pic1.Click 

    ' toogle the checked state of the checkbox' 
    chk1.Checked = Not chk1.Checked 

End Sub 
+0

它是C#和VB.NET的混合嗎? :) – Neolisk

+0

謝謝Steve先生,我會在我的程序中試用它。 – Haqua

+0

大括號是C#,VB.NET的語法是'Sub' ...'End Sub'。 – Neolisk

相關問題