2017-02-02 3 views
0

Wie in meiner Zusammenfassung angegeben, arbeite ich derzeit an einem virtuellen Betriebssystem in VB.Net. Ich arbeite gerade an der Sitzung, da ich mit dem Login-Zeug fertig bin.Geändert Checked State auf Kontrollkästchen mit Schaltfläche Aussehen in VB.NET

Ich habe Probleme mit einem Kontrollkästchen mit Schaltfläche Aussehen. Ich möchte die Checkstate an aufgegebenem setzen, wenn ich mit dem Click() Veranstaltung wie diese auf den Button klicken:

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 

Ich habe auch versucht die Eigenschaft Checked.

Dieser Code funktioniert überhaupt nicht, wenn ich den gesamten If-End If-Abschnitt in das CheckedChanged-Ereignis setze, bekomme ich eine StackOverflowException. Was mache ich falsch?

Die CheckBox ist eine benutzerdefinierte Steuerung b.tw.w.

+0

Try Sender btnApps wie zu werfen: btnApps = e As .... – duDE

+0

Was ist Ihr gool mit diesem Code ist, weil die Die Schaltfläche bleibt deaktiviert. Es gibt keine Möglichkeit, die Else-Anweisung einzugeben. –

+0

Ich denke, das normale Verhalten von Checkbox kann das tun, was Sie mit Ihrem Code versuchen. Deaktivieren Sie den Code und versuchen Sie es mit –

Antwort

1

Wenn Sie verhindern möchten, dass Ihre Checkbox den Status automatisch ändert und die Darstellung mit Ihrem eigenen Click-Ereignis ändert, können Sie AutoCheck auf false setzen.

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

Informationen gefunden dank dieser Frage: 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

Vielen Dank! Das war die Antwort, nach der ich gesucht habe! –

Verwandte Themen