2017-02-02 46 views
0

私の要約で述べたように、私は現在VB.Netの仮想OSで作業しています。私は現在、セッションに取り組んでいます。VB.NETのボタンの外観でチェックボックスのチェック状態を変更しました

ボタンが表示されたチェックボックスに問題があります。このようなClick()イベントでボタンをクリックすると、CheckStateをCheckedに設定したいと考えています。

Private Sub btnApps_Click(Byval sender As Object, Byval e As EventArgs) Handles btnApps.Click() 
     If btnApps.CheckState = CheckState.Checked Then 
      btnApps.CheckState = CheckState.Unchecked 
     Else 
      btnApps.CheckState = CheckState.Checked 
     End If 
    End Sub 

私もCheckedプロパティを試しました。

CheckedChangedイベントにIf-End Ifセクション全体を置くと、このコードはまったく機能しません。私はStackOverflowExceptionを取得します。私は間違って何をしていますか?

CheckBoxは、カスタムコントロールのb.t.wです。

+0

のようなbtnAppsに送信者をキャストしてみます:btnApps = Eのような.... – duDE

+0

ので、このコードを使用してgool何ですがボタンはチェックされず、Elseステートメントに入力する方法がありません –

+0

Checkboxの通常の動作でコードで何をしようとすることができると思いますので、コードを非アクティブ化してみてください –

答えて

1

チェックボックスが自動的に状態を変更しないようにし、独自のClickイベントで外観を変更したい場合は、AutoCheckをfalseにすることができます。

https://msdn.microsoft.com/en-us/library/system.windows.forms.checkbox.autocheck(v=vs.110).aspx

情報は、この質問への感謝を見つけた:How to cancel RadioButton or CheckBox checked change

Public Class Form1 
Private WithEvents btnApps As New clsChk 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 
    btnApps.AutoCheck = False 
    Me.Controls.Add(btnApps) 
End Sub 

Private Sub btnApps_Click(sender As Object, e As EventArgs) Handles btnApps.Click 
    Debug.WriteLine(btnApps.CheckState) 
    If btnApps.CheckState = CheckState.Checked Then 
     btnApps.CheckState = CheckState.Unchecked 
    Else 
     btnApps.CheckState = CheckState.Checked 
    End If 
End Sub 
End Class 
+0

ありがとうございました!これは私が探していた答えでした! –

関連する問題