DialogResult wird nicht erkannt?
Keine Ahnung was da los ist. Quasi den selben code benutze ich in einem anderen Projekt auch und da funktioniert es einwandfrei. Mit einem openFileDialog oder einer MessageBox funktioniert es auch.
Die 2te Form wird über einen button aufgerufen:
private void RenameButton_Click(object sender, EventArgs e)
{
using (RenameForm renameForm = new RenameForm())
{
if (renameForm.ShowDialog() == DialogResult.OK)
{
//...
}
else
{
MessageBox.Show("Test");
}
}
}
Wenn man aber jetzt den button in der 2ten Form drückt wird einem trotzdem die Test MessageBox angezeigt...:
private void btnOK_Click(object sender, EventArgs e)
{
NewFileName = textBox1.Text;
if (string.IsNullOrEmpty(NewFileName))
{
MessageBox.Show("Bitte gib einen gültigen Dateinamen ein.", "Ungültiger Dateiname", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
this.DialogResult = DialogResult.OK;
}
Ich freue mich über jede Hilfe die ich kriegen kann.
Ich mach da schon wieder viel zu lange herum.
Was ist wenn du in der zweiten Form anstelle von DialogResult.Continue Mal DialogResult.OK ausprobierst?
Ah. Sorry. Hatte es vergessen um zu ändern. In meinem code sind beide auf OK gestellt und es geht dennoch nicht
Was erhältst du denn, wenn du die If-Bedingungen überprüfst? Geben diese tatsächlich den gewünschten Wert wieder?
Was genau meinst du mit was ichErhalte? Der button in der 2ten form stellt den dialog result auf ok. obwohl das passiert öffnet sich die test MessageBox. Das macht doch keinen sinn
if (renameForm.ShowDialog() == DialogResult.OK) Der Teil hier scheint ja offensichtlich nicht erfüllt zu sein, wenn er dann in den else Teil springt und das "Test" ausführt.
Ja das ist doch das Problem was ich habe. Ich verstehe nicht warum es nicht erfüllt ist da doch in der form die aufgerufen wird der dialog result auf ok gestellt wird.
1 Antwort
Habe ein wenig herumexperimentiert und das hier gebastelt:
public bool IsDialogOK { get; private set; }
private void btnOK_Click(object sender, EventArgs e)
{
NewFileName = textBox1.Text;
if (string.IsNullOrEmpty(NewFileName))
{
MessageBox.Show("Bitte gib einen gültigen Dateinamen ein.", "Ungültiger Dateiname", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
IsDialogOK = true;
this.Close();
}
______________________________________________
private void RenameButton_Click(object sender, EventArgs e)
{
using (RenameForm renameForm = new RenameForm())
{
renameForm.ShowDialog();
if (renameForm.IsDialogOK)
{
// ...
}
else
{
MessageBox.Show("Test");
}
}
}
Kann es gerade leider nicht ausführen, da ich auf dem Laptop hier keine Umgebung habe. Ist also rein experimentell. Sag mir gerne Bescheid, ob es so zum gewünschten Ergebnis führt.
Manchmal stirbt man eben doch dumm - vor allem in der Softwareentwicklung. Will gar nicht wissen wie oft ich das schon hatte, dass ich ein Problem anders lösen musste, weil der ursprüngliche Weg nicht funktionierte und ich ums' Verrecken nicht rausfinden konnte wieso. Freut mich, dass ich helfen konnte.
Wäre mein nächster versuch gewesen. Funktioniert. Hätte halt gerne gewusst warum er den DialogResult nicht erkennt. Aber egal. Hauptsache es geht endlich :)
Danke