Zitat: |
Hier ist nur das Problem, das der Suchstring aus einen anderen Formular kommt, und nicht genau weiß wie ich das Formualr ansprechen muss. |
Gar nicht da die Codestelle die andere Form/das andere Window nicht kennt wenn du nicht einen Verweis darauf zu der Stelle wo du sie brauchst hin transportierst.
Instanzen von Klassen sind nicht einfach so überall bekannt man muss schon dafür sorgen das an der entsprechenden Stellen ein Verweis darauf da ist (z.B. in Form einer Variablen mit dem entsprechenden Verweis). Vielleicht hilft dir der Gedanke das eine Form/Window nichts besonders ist. Es ist eine Klasse von der man Instanzen erzeugen kann und die sich auch haargenau so verhalten wie andere Instanzen anderer Klassen. Sie hat halt die Fähigkeit sich irgendwo anzuzeigen so wie andere Klassen eben die Fähigkeit haben Verbindungen zu Datenbanken aufzubauen oder Dinge in Dateien zu schreiben haben oder oder oder ....
Beispiel: Du möchtest 2^zahl berechnen in einer ausgelagerten Methode die 2^x berechnen kann. Dein Gedankengang übersetzt (so wie ich deine Frage verstanden habe) würde folgendes bedeuten
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| class Program { static void Main(string[] args) { double zahl = 5.0; double unbenutzerUnsinn = 1.0
double result = ZweiHochX(); Console.WriteLine(result); }
static double ZweiHochX() { return Math.Pow(2.0, [double]); } } |
In ZweiHochX() double anzusprechen ist offensichtlich falsch. Welcher double denn? Man könnte als nächstes [zahl] anstatt [double] versuchen aber dir ist vermutlich klar das das genauso Unsinn ist. Ein Variablenname ist weder eindeutig noch überall bekannt sondern nur in dem Scope in dem die Variable definiert ist. zahl gibt es im Beispiel nur in der main Methode. Lösung? Natürlich du musst der Methode ZweiHochX einen Parameter geben und zahl übergeben. Und jetzt wiederhole ich die Aussage
"eine Form/Window ist eine Klasse wie jede andere auch".
Genauso wie zum Beispiel ein double.