mikrocontroller.net

Forum: PC-Programmierung C#: WindowsForm ShowDialog


Autor: vGraf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
<<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

Autor: __tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
{
}

Autor: Markus Volz (valvestino)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: bluppdidupp (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.