Hallo zusammen,
ich möchte mir eine eigene MSGBox erstellen, in der ich dann x beliebig viele Buttons einfügen kann.
Basis ist: VB.Net 2022, Projektvorlage ist Windows Forms-Steuerelementbibliothek (.NET Framework), Keine Veränderungen in den Eigenschaften, VB.Net als Admin gestartet
Jetzt ist aber direkt schon das erste Problem aufgetreten: Wie bekomme ich in der Hauptanwendung mit, welcher Button gedrückt wurde?
Mein bisheriger Controlcode sieht so aus:
Spoiler anzeigen
Soweit ist mir der Code eigentlich klar, aber bei me.close() kommt die Fehlermeldung "BC30256 Close ist kein Member von NeueMSGBox". Die Korrekturmöglichkeit wäre
Private Sub Close()
Throw New NotImplementedException()
End Sub
In der Hauptform gibt es einen Verweis auf die DLL-Datei und der Code sieht so aus
Spoiler anzeigen
Nachdem ich auf den Testbutton geklickt habe, kommt folgender Fehler
System.StackOverflowException
HResult=0x800703E9
Nachricht = Eine Ausnahme vom Typ "System.StackOverflowException" wurde ausgelöst.
Könnt Ihr mir evtl. helfen und mir die richtige Vorgehensweise nennen?
Vielen Dank schon einmal im Voraus.
Volker
ich möchte mir eine eigene MSGBox erstellen, in der ich dann x beliebig viele Buttons einfügen kann.
Basis ist: VB.Net 2022, Projektvorlage ist Windows Forms-Steuerelementbibliothek (.NET Framework), Keine Veränderungen in den Eigenschaften, VB.Net als Admin gestartet
Jetzt ist aber direkt schon das erste Problem aufgetreten: Wie bekomme ich in der Hauptanwendung mit, welcher Button gedrückt wurde?
Mein bisheriger Controlcode sieht so aus:
VB.NET-Quellcode
-
- Public Class NeueMSGBox
- Private selectedButton As String = ""
- ' Diese Methode zeigt die MsgBox an und gibt das Ergebnis zurück
- Public Function ShowDialog() As String
- Me.ShowDialog()
- Return selectedButton
- End Function
- ' Event-Handler für Button 1
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- selectedButton = "Option 1"
- Me.Close()
- End Sub
- ' Event-Handler für Button 2
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- selectedButton = "Option 2"
- Me.Close()
- End Sub
- ' Event-Handler für Button 3
- Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
- selectedButton = "Option 3"
- Me.Close()
- End Sub
- End Class
Soweit ist mir der Code eigentlich klar, aber bei me.close() kommt die Fehlermeldung "BC30256 Close ist kein Member von NeueMSGBox". Die Korrekturmöglichkeit wäre
Private Sub Close()
Throw New NotImplementedException()
End Sub
In der Hauptform gibt es einen Verweis auf die DLL-Datei und der Code sieht so aus
VB.NET-Quellcode
-
- Imports NeuMsgBox
- Public Class Form1
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim msgBox As New NeueMSGBox()
- Dim result As String = msgBox.ShowDialog()
- Select Case result
- Case "Option 1"
- MessageBox.Show("Du hast Option 1 gewählt.")
- Case "Option 2"
- MessageBox.Show("Du hast Option 2 gewählt.")
- Case "Option 3"
- MessageBox.Show("Du hast Option 3 gewählt.")
- Case Else
- MessageBox.Show("Keine Option gewählt.")
- End Select
- End Sub
- End Class
Nachdem ich auf den Testbutton geklickt habe, kommt folgender Fehler
System.StackOverflowException
HResult=0x800703E9
Nachricht = Eine Ausnahme vom Typ "System.StackOverflowException" wurde ausgelöst.
Könnt Ihr mir evtl. helfen und mir die richtige Vorgehensweise nennen?
Vielen Dank schon einmal im Voraus.
Volker