Rofi
Erfahrenes Mitglied
Hallo,
ich bin gerade dabei ein E-Book von GalileoPress durchzunehmen. (Einstieg in VB.NET von René Martin)
Hier kommt es in einem komplexeren Beispiel als dem von mir angehängten dazu, dass der Autor, nachdem er einiges anhand von Radiobuttons, Checkboxen usw. in einem Formular gezeigt hat, ein zweites Formular hinzufügt mit "Projekt - Windows Form hinzufügen" und dieses frmForm2 zum Startformular macht.
Auf dem ersten Formular in meinem abgespeckten Bsp. befinden sich 4 Radiobuttons in einer Groupbox und eine Checkbox. Nun sollte es so sein, dass Radiobutton 1 + 2 die Checkbox ein- und Radiobutton 3 + 4 die Checkbox wieder ausschalten können. Der Autor René Martin übergibt dabei eine Schaltervariable an eine EinAus()-Prozedur in einem hinzugefügten Modul. Das klappt auch solange wie Form1 das Startformular ist.
Das zweite Formular in meinem Bsp. enthält nur einen Button der Form1 aufrufen kann. Sobald das 2. Formular aber zum Startformular gemacht wird, funktioniert oben beschriebenes nicht mehr bzw. nur mit den Radiobuttons 2 + 4. Radiobutton 2 + 4 übergeben nämlich keine Variable an ein Prozedur, sondern schalten die Checkbox direkt. Ich habe 2 + 4 zur Demonstration hinzugefügt.
Macht man Formular 1 wieder zum Startformular, so, dass Formular 2 gar nicht angezeigt wird, funktionieren alle 4 Radiobuttons wie erwartet!!?
Der Autor geht leider nicht auf dieses Problem ein. Vielleicht ist es ihm nicht aufgefallen?
Wechselt man in dem Bsp. in der Groupbox zwischen den Radiobuttons 2+4 hin und her, welche die Checkbox ohne Umweg über das Module schalten, sieht man, dass 2+4 funktionieren, wie sie sollen, 1+3 aber nicht!
Kann mir jemand erklären warum?
Danke Euch für Tipps
Rofi
PS. In der TestApp.zip Datei im Anhang ist die Verzeichnisstruktur enthalten.
ich bin gerade dabei ein E-Book von GalileoPress durchzunehmen. (Einstieg in VB.NET von René Martin)
Hier kommt es in einem komplexeren Beispiel als dem von mir angehängten dazu, dass der Autor, nachdem er einiges anhand von Radiobuttons, Checkboxen usw. in einem Formular gezeigt hat, ein zweites Formular hinzufügt mit "Projekt - Windows Form hinzufügen" und dieses frmForm2 zum Startformular macht.
Auf dem ersten Formular in meinem abgespeckten Bsp. befinden sich 4 Radiobuttons in einer Groupbox und eine Checkbox. Nun sollte es so sein, dass Radiobutton 1 + 2 die Checkbox ein- und Radiobutton 3 + 4 die Checkbox wieder ausschalten können. Der Autor René Martin übergibt dabei eine Schaltervariable an eine EinAus()-Prozedur in einem hinzugefügten Modul. Das klappt auch solange wie Form1 das Startformular ist.
Das zweite Formular in meinem Bsp. enthält nur einen Button der Form1 aufrufen kann. Sobald das 2. Formular aber zum Startformular gemacht wird, funktioniert oben beschriebenes nicht mehr bzw. nur mit den Radiobuttons 2 + 4. Radiobutton 2 + 4 übergeben nämlich keine Variable an ein Prozedur, sondern schalten die Checkbox direkt. Ich habe 2 + 4 zur Demonstration hinzugefügt.
Macht man Formular 1 wieder zum Startformular, so, dass Formular 2 gar nicht angezeigt wird, funktionieren alle 4 Radiobuttons wie erwartet!!?
Der Autor geht leider nicht auf dieses Problem ein. Vielleicht ist es ihm nicht aufgefallen?
Wechselt man in dem Bsp. in der Groupbox zwischen den Radiobuttons 2+4 hin und her, welche die Checkbox ohne Umweg über das Module schalten, sieht man, dass 2+4 funktionieren, wie sie sollen, 1+3 aber nicht!
Kann mir jemand erklären warum?
Danke Euch für Tipps
Code:
Public Class frmForm1
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
Dim fSchalter As Boolean 'Schaltervariable
fSchalter = True 'Schalter an
Moduletest.EinAus(fSchalter) 'wird an EinAus() von ModuleTest übergeben
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
CheckBox.Enabled = True 'Schaltet an ohne Umweg über EinAus()
End Sub
Private Sub RadioButton3_CheckedChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
Dim fSchalter As Boolean 'Schaltervariable
fSchalter = False 'Schalter aus
Moduletest.EinAus(fSchalter) 'wird an EinAus() von ModuleTest übergeben
End Sub
Private Sub RadioButton4_CheckedChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
CheckBox.Enabled = False 'Schaltet die Checkbox ohne Umweg über EinAus()
CheckBox.Checked = False 'Falls angewählt wird Checkbox abgewählt
End Sub
Private Sub frmForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RadioButton1.Checked = True 'Beim öffnen des Formulars Radiobutton1 aktivieren
End Sub
End Class
Code:
Public Class frmForm2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objForm As New frmForm1()
objForm.Show() 'Zeigt frmForm1 an
End Sub
End Class
Code:
Module Moduletest
Public Sub EinAus(ByVal fSwitch As Boolean)
If fSwitch = True Then
frmForm1.CheckBox.Enabled = True 'Wenn Schalter an, dann Checkbox anwählbar
Else
frmForm1.CheckBox.Enabled = False 'sonst Checkbox nicht anwählbar
frmForm1.CheckBox.Checked = False 'Häckchen evtl. entfernen
End If
End Sub
End Module
Rofi
PS. In der TestApp.zip Datei im Anhang ist die Verzeichnisstruktur enthalten.
Anhänge
Zuletzt bearbeitet: