Benutzer mit den meisten Antworten
MsgBoxStyle.YesNoCancel gibt auch bei Klick auf "Nein" vbcancel zurück.

Frage
-
Hallo!
Ich habe ein Problem mit meinen Messageboxen.
Der Style ist
MsgBoxStyle.YesNoCancel
und die Box hat auch 3 Schaltflächen: Ja, Nein, Abbrechen.
Wenn man auf Abbrechen klickt ist der Rückgabewert vbcancel. Wenn man auf Nein klickt aber auch! Ich müsste aber doch vbno zurück bekommen.
Weiß jemand woran das liegt?
Viele Grüße
Claudia
Antworten
-
Ja klar. Sorry!
Ich habe die Messageboxen bisher wie in VB 6 behandelt.
Z.B. So:
If MsgBox("Möchten Sie Ihre Änderungen speichern?", vbYesNo, ModuleName)= vbyes then
Das funktionierte solange bis ich zusätzlich eine Abbrechen-Schaltfläche anzeigen wollte und dafür vbYesNoCancel als Style verwendet habe. Dann wurde bei Klick auf Abbrechen und bei Klick auf Nein immer vbCancel zurück gegeben.
Jetzt habe ich es so umgebaut und dann läuft es:
Dim msg As String Dim title As String Dim style As MsgBoxStyle Dim response As MsgBoxResult msg = "Möchten Sie Ihre Änderungen speichern?" style = MsgBoxStyle.DefaultButton1 Or MsgBoxStyle.Question Or MsgBoxStyle.YesNoCancel title = ModuleNameresponse = MsgBox(msg, style, title) If response = MsgBoxResult.Yes Then KommandoSpeichern() End If
- Als Antwort markiert Tom Lambert (Koopakiller)Moderator Freitag, 30. August 2013 13:34
Alle Antworten
-
Hallo Claudia8,
schön das du die Lösung gefunden hast. Kannst du diese denn bitte auch hier posten, damit andere Besucher eventuell auch eine Lösung finden? Danke.<Code-13/>- Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite | Code Beispiele | Facebook | Twitter | Snippets C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke. -
Ja klar. Sorry!
Ich habe die Messageboxen bisher wie in VB 6 behandelt.
Z.B. So:
If MsgBox("Möchten Sie Ihre Änderungen speichern?", vbYesNo, ModuleName)= vbyes then
Das funktionierte solange bis ich zusätzlich eine Abbrechen-Schaltfläche anzeigen wollte und dafür vbYesNoCancel als Style verwendet habe. Dann wurde bei Klick auf Abbrechen und bei Klick auf Nein immer vbCancel zurück gegeben.
Jetzt habe ich es so umgebaut und dann läuft es:
Dim msg As String Dim title As String Dim style As MsgBoxStyle Dim response As MsgBoxResult msg = "Möchten Sie Ihre Änderungen speichern?" style = MsgBoxStyle.DefaultButton1 Or MsgBoxStyle.Question Or MsgBoxStyle.YesNoCancel title = ModuleNameresponse = MsgBox(msg, style, title) If response = MsgBoxResult.Yes Then KommandoSpeichern() End If
- Als Antwort markiert Tom Lambert (Koopakiller)Moderator Freitag, 30. August 2013 13:34
-
Hi Claudia,
wäre auch einfacher gegangen:
If MsgBox("Möchten Sie Ihre Änderungen speichern?", MsgBoxStyle.YesNoCancel Or MsgBoxStyle.SystemModal Or MsgBoxStyle.Exclamation) = 2 Then xxx End IF
Die Zahl steht dabei für einen Rückgabewert den du Abfragen kannst siehe hier:
http://msdn.microsoft.com/de-de/library/139z2azd%28v=vs.90%29.aspx --> Rückgabewert
Viele Grüße -
@ _S_D_: Das ist schön kurz (gut), aber leider auch unsauber (weniger gut). Claudia hingegen macht das schon richtig. Denn strenggenommen ist
If MsgBox(...) = 2
unsauber, und OPTION STRICT ON würde das auch ankreiden (Elmar vermutlich auch ;-), weil der Rückgabewert eben MsgBoxResult ist, und nicht Integer.
Just my 0.02$ ...
LG, Dennis.
EDI Consultant/Developer
Ich nutze meistens VB6 und VS2005 bis VS2012
Bitte die Antworten sowie weitere hilfreiche Beiträge von Mitgliedern markieren. Vielen Dank.