DialogResult wird nicht erkannt?

iSc0field  30.06.2023, 17:31

Was ist wenn du in der zweiten Form anstelle von DialogResult.Continue Mal DialogResult.OK ausprobierst?

Nutzer4596 
Fragesteller
 30.06.2023, 17:32

Ah. Sorry. Hatte es vergessen um zu ändern. In meinem code sind beide auf OK gestellt und es geht dennoch nicht

iSc0field  30.06.2023, 17:36

Was erhältst du denn, wenn du die If-Bedingungen überprüfst? Geben diese tatsächlich den gewünschten Wert wieder?

Nutzer4596 
Fragesteller
 30.06.2023, 17:44

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

iSc0field  30.06.2023, 17:46

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.

Nutzer4596 
Fragesteller
 30.06.2023, 17:48

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

Vom Fragesteller als hilfreich ausgezeichnet

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.

Woher ich das weiß:Berufserfahrung – Full-Stack Entwickler bei Mercedes-Benz
Nutzer4596 
Fragesteller
 30.06.2023, 18:01

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

1
iSc0field  30.06.2023, 18:03
@Nutzer4596

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.

0