Hallo,
ich suche schon seit heute morgen um 10.00, habe aber nicht das gefunden, was genau mein Problem löst.
Das hier ist mein Code:
public partial class Form1 : Form
{
public static void lbltxtchange()
{
Form1 lblchange = new Form1();
lblchange.label1.Text = "Gurke";
}
private void btnchange_Click(object sender, EventArgs e)
{
lbltxtchange();
}
}
Mein Problem: Um den Text des Labels (label1) aus einer statischen Methode heraus zu verändern, brauche ich ja einen Objektverweis. Mit diesem Code erstelle ich aber ein zweites "Form1".
Könntet ihr mir helfen, wie ich anstatt ein neues Form zu erstellen, auf das Label auf Form1 zugreifen kann?
Danke schonmal,
Nezgrul
Hiho,
das habe ich mir schon durchgelesen, daher habe ich ja den Code.
MyClass anInstanceofMyClass = new MyClass();
anInstanceofMyClass.TestCall();
Mach die Methode einfach nicht statisch und gut ist.
Mach die Methode einfach nicht statisch und gut ist.
Also gibt es keine Möglichkeit einen Verweis auf ein bereits vorhandenes Objekt zu "legen"? Muss man immer ein neues Objekt erstellen?
Dir fehlen noch einige Grundlagen, die du dir erst mal aneignen solltest. Damit dein Code funktioniert, ist folgendes zu tun.
public void lbltxtchange()
{
lblchange.label1.Text = "Gurke";
}
Also gibt es keine Möglichkeit einen Verweis auf ein bereits vorhandenes Objekt zu "legen"?
Doch - das nennt sich Variable.
Allerdings bezweifle ich, dass dir das jetzt wirklich weiterhelfen wird - eine statische Methode ist hier einfach fehl am Platze!
Mach die Methode einfach nicht statisch und gut ist.
Also gibt es keine Möglichkeit einen Verweis auf ein bereits vorhandenes Objekt zu "legen"? Muss man immer ein neues Objekt erstellen?
suchst Du vielleicht sowas?
private static void ChangeText(Form form, String labelName) {
// Who cares about Nullpointers?
((Label)form.Controls.Find(labelName, true)[0]).Text = "Gurke";
}
private void cmdChange_Click(object sender, EventArgs e) {
ChangeText(this, lbtText.Name);
}
Hallo,
es hat im Allgemeinen nicht viel Sinn, wenn eine statische Methode eine Instanz der Klasse benötigt, in der sie deklariert wird -> dann kann man auch eine Memberfunktion nehmen.
Der einzige Anwendungsfall, bei dem ich mir das vorstellen könnte, wäre der, daß die statische Methode auch dann Ihre Arbeit tun kann, wenn ein solcher Parameter null ist.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
@MarsStein,
das ja nur ein Beispiel - natürlich wäre eine solche Methode public (oder ggf. protected) und auch das Errorhandling sollte dann implementiert sein.
Ich habe das Codesnippet nur quick & dirty reingestellt - hab ja keine Ahnung, warum der Threadersteller diese Funktionalität benötigt.
Hallo Nezgrul,
Also gibt es keine Möglichkeit einen Verweis auf ein bereits vorhandenes Objekt zu "legen"?
natürlich gibt es immer viele andere Möglichkeiten, aber nicht alles was geht, ist auch sinnvoll. Den richtigen Rat hat winSharp93 gegeben:
Mach die Methode einfach nicht statisch und gut ist.
Muss man immer ein neues Objekt erstellen?
Nein, das musst man natürlich nicht und das wäre in aller Regel sogar der falsche Weg.
Leider fallen alle deine Fragen und Nachfragen unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
herbivore