Forum: PC-Programmierung C#: WindowsForm ShowDialog


von vGraf (Gast)


Lesenswert?

Hallo!

ich habe ein Eingabefesnter, dass ich einmal instanziere und mehrfach 
hintereinander mit ShowDialog anzeige und den Rückgabewert DialogResult 
auswerte.

Das wiederholte anzeigen führt dazu, dass immer der zuletzt geklickte 
Button ausgewählt ist. Daher wollte ich die ShowDialog-Klasse 
"überschreiben".
override geht jedoch nicht, also habe ich eine Methode "public 
DialogResult ShowDialog" angelegt. Nun bekomme ich folgende 
Fehlermeldung
1
<<meineKlasse>.ShowDialog()' hides inherited member 'System.Windows.Forms.Form.ShowDialog()'. Use the new keyword if hiding was intended"

Was mache ich falsch?

Gruß
v. Graf

von __tom (Gast)


Lesenswert?

deine klasse erbt die methode ShowDialog von der basis-klasse und du 
hast eine methode ShowDialog definiert, der compiler sagt dir nun das 
deine methode ShowDialog die methode aus der basis-klasse überdeckt, 
wenn es das ist was du möchtest, dann benutze das new keyword.

deine methode muss also so aussehen

public new DialogResult ShowDialog
{
}

von Markus V. (valvestino)


Lesenswert?

vGraf schrieb:
> Daher wollte ich die ShowDialog-Klasse
> "überschreiben".
> override geht jedoch nicht, also habe ich eine Methode "public
> DialogResult ShowDialog" angelegt.

Was genau meinst Du mit "wollte ich die ShowDialog-Klasse 
"überschreiben"" und "override geht jedoch nicht"? Was versprichst Du 
Dir davon? Was versprichst Du Dir davon, nicht jedesmal eine neue 
Instanz der Dialog-Klasse zu erzeugen? Ist der Dialog derart komplex, 
dass die new-Operation so lange dauert?

Gruß
Markus

von bluppdidupp (Gast)


Lesenswert?

Ich würde eher eine Reset()-Funktion schreiben und die vor ShowDialog() 
aufrufen, oder rufst du ShowDialog() von mehreren Stellen aus auf?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.