Hallo,
ich habe eine MessageBox in dem ich den Nutzer frage ob er eine Datei auswählen möchte oder nicht:
MessageBoxResult result = MessageBox.Show("Datei konnte nicht gelesen werden. Andere Datei wählen?","Falches Format", MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK)
{
OpenFileDialog();
}
Nun bekomme ich den Fehler
Fehlermeldung:
Dialoge müssen vom Benutzer eingeleitet werden
wobei ich mich frage ob in einer MessageBox auf "Ja" zu klicken wohl keine Benutzeraktion sein soll ... Naja nun gut ^^
Ich weiß natürlich das ich eine Methode a lá ButtonClicked(object sender, EventArgs e) brauche um da meinen Dialog zu öffnen, gibt es vielleicht eine Möglichkeit eine solche Methode auszufüren sobald man auf das JA in der MessageBox klickt ?
Muss doch irgendwie möglich sein 😃
Lieben Dank schon jetzt, hoffe jemand hat nen Tipp für mich
Kannst du etwas genauer ausführen, was du da eigentlich machen willst bzw. wie deine restliche Anwendung aussieht? Ich sehe da nämlich kein Problem.
Hallo,
Steht doch eigentlich schon da, oder verstehe ich dich falsch?
if (result == MessageBoxResult.OK)
{
//ButtonClicked
}
An die Stelle //ButtonClicked kannst du doch jetzt die Methode packen die beim "ClickEvent" ausgeführt werden soll.
Oder hast du eine MsgBox mit Yes/No? Dann musst du natürlich bei DialogResult auf Yes und nicht OK prüfen.
Lg Karim
Ich vermute fast, dass die Zeile OpenFileDialog(); Dein wahres Problem ist. OpenFileDialog ist eine Klasse. Du musst also erstmal ein Objekt dieser Klasse erzeugen, bevor Du den Dialog anzeigen kannst. Etwa so
using (OpenFileDialog dlg = new OpenFileDialog()) {
if (dlg.ShowDialog(parent) = DialogResult.OK) {
// hier dann z.B. die ausgewählte Datei öffnen
}
}
huhu,
hatte nicht so viel Zeit aber bin wieder da 😃
Also das Problem besteht weiterhin. Ich bekomme die Meldung:> Fehlermeldung:
Dialoge müssen vom Benutzer eingeleitet werden
OpenFileDialog() ist keine Klasse sondern eine Methode in der unter anderen das hier steht: Bei dieser Zeile kommt nämlich auch die Fehlermeldung.
bool? dialogResult = _openFileDialog.ShowDialog();
Ich habe ja bereits gegoogelt und erfahren das der Dialog nur gezeigt wird wenn das ganze in einer "Button-Event-Click"-Methode drinsteht.
Nur wie kann ich das anstellen ?
Hab es bereits so verucht, ohne Erfolg:
MessageBoxResult result = MessageBox.Show("Datei konnte nicht gelesen werden. Andere Datei wählen?","Falches Format", MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK) {
button1_Click(null,null);
}
private void button1_Click(object sender, RoutedEventArgs e) {
.....
bool? dialogResult = _openFileDialog.ShowDialog();
.....
}
Aber wieder die Fehlermeldung :8
Aus
bool? dialogResult = _openFileDialog.ShowDialog();
schließe ich, dass du den OpenFileDialog aus Microsoft.Win32 oder so verwendest. Die ist AFAIK eher für WPF gedacht. Versuchs mal mit der aus System.Windows.Forms. Mit der hatte ich nie Probleme, sie aus beliebigen Methoden zu zeigen.
Sorry ... es geht dabei um eine Silverlightanwendung.
Bin dann wohl im falschen Unterforum gelandet 😃
Ok, ich hab's verschoben
Das problem entsteht wenn du einen Breakpoint vor z. B. OpenFileDialog.ShowDialog() (habe die Methode nicht ganz im Kopf) setzt. Setze den Breakpoint hinter die entsprechende Zeile
MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden!
*"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht."
*"Ignorance simplifies ANY problem."
*"Stoppt die Piraterie der Musikindustrie"
Siege generell auch Simple silverlight open-file-dialog errors; du kannst nur einen Dialog pro "User-Interaktion" öffnen.
Siehe auch Öffnen des Druck-Dialogs: "Dialoge müssen vom Benutzer eingeleitet werden"