2017-02-02 2 views
0

Как указано в моем резюме, в настоящее время я работаю над виртуальной ОС в VB.Net. В настоящее время я работаю над сеансом, так как я закончил работу с логином.Изменено состояние проверено на флажке с появлением кнопки в VB.NET

У меня возникли проблемы с флажком с появлением кнопки. Я хочу, чтобы установить CheckState в Проверил если нажать на кнопку с событием Click(), как это:

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 

Я также попытался проверяемого имущества.

Этот код не работает вообще, если я помещаю весь раздел If-End If в событие CheckedChanged, я получаю исключение StackOverflowException. Что я делаю не так?

CheckBox - это пользовательский элемент управления b.t.w.

+0

Try бросить отправителю btnApps как: btnApps = е Как .... – 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

Большое спасибо! Это был ответ, который я искал! –

Смежные вопросы