Deaktivieren vb.net Checkboxen
Ich habe eine grundlegende Frage, über Vb.net.
Ich habe ein Formular, sagen Sie "Form1", auf welches eine checkbox "CheckBox1" löst das pop-up von einem anderen Formular (z.B. "Form2"). Form2 hat eine Schaltfläche "Abbrechen" (sagen, "Button1") schließt Form2 und deaktiviert "CheckBox1" auf Form1.
Form2 "Abbrechen" - button code ist :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.DialogResult = DialogResult.Cancel
Form1.CheckBox1.CheckState = 0
End Sub
Es funktioniert, aber ich habe ein problem, wenn Sie versuchen, das gleiche zu tun mit einer Dritten form ("Form3") ausgelöst, die von einem anderen CheckBox1 auf Form2, trotz Form3 "Abbrechen" - button ist zwar codiert die gleiche Weise in Form3 :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.DialogResult = DialogResult.Cancel
Form2.CheckBox1.CheckState = 0
End Sub
Wenn ich MsgBox(Form2.CheckBox1.CheckState) in Form3 code, ist es immer "0", trotz der "1" wenn ich MsgBox ("CheckBox1.CheckState) in Form2.
Sorry für diese noob Frage, aber ich kann nicht sehen keine Erklärung.
Vielen Dank im Voraus wenn jemand mir helfen kann.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstens, Schalten Sie Option Strict Auf, und ändern Sie Ihre
CheckState
Zuordnungen zu den richtigen Enumeration anstelle von 0 oder 1.Zweitens sollten Sie vermeiden, die Einstellung der Eigenschaften der Steuerelemente, die auf verschiedenen Formen.
Können Sie mit der return-Wert von
ShowDialog
um zu bestimmen, ob der OK-oder der Abbrechen-Schaltfläche geklickt wurde, die auf einem Formular.Also, was würden Sie tun, ist geben Sie das Ergebnis mit dem Wert des OK-und Abbrechen-Schaltflächen in Form2 wie diese:
Stellen Sie sicher, fügen Sie den code in Form2 um das Formular zu schließen wenn diese angeklickt werden:
Dann in Form1 rufen Sie Form2.ShowDialog und untersuchen Sie die DialogResult-Wert, um zu sehen, welche Schaltfläche geklickt wurde:
Als alternative, die Form1-code können werden drastisch vereinfacht, wenn Sie glücklich sind, mit der Logik, so etwas wie dieses: