DialogForm Problem

Reverent

Erfahrenes Mitglied
Hallo Leute,
ich habe mal wieder ein Problem bei dem ich euere Hilfe benötig, aber erstmal wünsche ich allen einen guten Rutsch ins neue Jahr.
Code:
public partial class DialogForm : Form
{
 public DialogForm()
 { InitializeComponent(); }

 private string strTextInput;
 public string TextInput
 { get { return strTextInput; } }

 private void btnOk_Click(object sender, EventArgs e)
 {
   strTextInput = txtInput.Text;
   this.DialogResult = DialogResult.OK;
 }

 private void btnAbort_Click(object sender, EventArgs e)
 {
 this.DialogResult = DialogResult.Abort;
 }
}
In der Form1 habe ich eine Funktion in der ich die DialogForm aufrufen und den string 'TextInput' auswerte.
Mein Problem ist jetzt, das ich eine Form2 habe und da die DialogForm aufrufen auch auf rufen möchte, unsaubere Lösung ich kopiere die Funktion aus der Form1 in die Form2, bessere Lösung meine ich, die Funktion packe ich mit in die Klasse DialogForm rein so das er sich selber aufruft.
Aber wie programmiere ich so ein Selbst aufruf sauber.
Bis dann
Markus
 
Den DialogResult musst du nicht "per Code" festlegen. Diese Eigenschaft kannst du beim jeweiligen Button setzen.

Ansonsten hab ich auch nicht ganz verstanden was du willst.
 
Hallo Leute,
ok ich versuch es noch mal.
Ich habe ein Funktion die eine DialogForm aufruft und den 'TextInput' auswertet.
Diese Funktion brauche ich noch in einer zweiten Form.
Die gleiche Funktion ein zweites mal ist doch unsauber, so hatte ich mir gedacht, ich packe die Funktion in eine seperate Klasse.
Wie "verbinde" ich jetzt ambestem die Funktions mit der Dialogform Klasse,
per Vererbung?

Ich hoffe es ist deutlicher geworden!!

Bis Dann
Markus
 
Nicht wirklich ...
Also für mich klingt das so, als würdest du einfach 1 Methode aus 2 (oder in späterer Folge mehreren) Formen aufrufen wollen.

Gut, dann mach eine eigene Klasse und implementiere dort die Methode [ev. static].
Wo genau ist das Problem?
Oder benutz ein Interface...
 
Ja bitte gern geschehen, wobei ich immer noch nicht verstehe wo genau das Problem ist, wenn du dir die Antwort in deinem ersten Post schon selbst gibst? :)
 
Hallo Nil,
ich wollte diese Funktion erst mit in die DailogForm Klasse packen, so das die Funktion quasi "sich selber" aufruft. Jetzt packe ich die Funktion aber in eine eigene Klasse, so das ich jetzt zwei Klassen habe:
einmal die DialogForm Klasse und die Klasse in der die Funktion ist.
Nur jetzt bin ich an überlegen, ob oder wie ich die beiden Klassen mit einander "verbinde" Vererbung oder irgend wie per Interfase, wenn das überhaupt sein muß!
Bis dann
Markus
 
Wenn du eine Methode in jede Klasse schreiben würdest wäre das sehr unkomfortabel, da du bei einem Fehler dieselbe Methode zig mal ausbessern müsstest. Das wäre dann strukturierte Programmierung und keine Objektorientierte...

Du willst also von jeder Klasse eine Methode einer anderen aufrufen.
Naja, entweder du leitest du Klassen ab, dann hast du die Methode automatisch "dabei", oder du erzeugst ein neues Objekt der "Funktions-Klasse" und rufst über dieses Objekt die Klasse auf.
 
Das heißt Interface Reverent . ;)

Design und Logik haben miteinander nicht viel zu tun. Da wirst mit [falsch]Komposition[/falsch] [richtig]Vererbung[/richtig] nicht weit kommen...
Definiere deine Klasse als Member oder mache sie via Singleton über den Klassennamen verfügbar. Aber nur wenn sie einmal und ständig gebraucht wird und schnell verfügbar sein soll.
 
Zuletzt bearbeitet:
Zurück