Laden...

Funktion die aufrufender Funktion wert zuweist

Erstellt von Ploetzi vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.205 Views
Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren
Funktion die aufrufender Funktion wert zuweist

Hallo,
folgendes Problem:

Ich rufe von einem Button die einen sender und ein eventargs enthaelt eine Funktion per klick auf.
Dieser ruft wieder eine Farbaenderungsfunktion auf, uebergibt den sender und das eventargs.

DOCH:
Es funktioniert nicht:
Hier mein ansatz, habs mit nem text gezeigt:
Parent.Text="asdf";

Das alles is in einem namespace

691 Beiträge seit 2007
vor 15 Jahren

Ergänze deinen Quellcode bitte auf die beiden genannten Methoden.

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

Also:

Ich habe eine Funktion die beim Betreten der Funktion aufgerufen wird:

        private void txt_xoffset_Enter(object sender, EventArgs e)
        {
            Einheitenrechner(sender, e);
        }

und der soll dann das aufrufen und in txt_xoffset den wert reinschreiben

    private void Einheitenrechner(object sender,EventArgs e)
        {
          Parent.Text = "asdf";
        }
K
79 Beiträge seit 2006
vor 15 Jahren

Hallo Ploetzi,

wieso verwendest du dann nicht:

private void txt_xoffset_Enter(object sender, EventArgs e)
{
Einheitenrechner(sender, e);
}

private void Einheitenrechner(object sender,EventArgs e)
{
txt_xoffset.Text = "asdf";
} 

Ich geh davon aus, das txt_xoffset deine Textbox ist.

Bzw. wenn du es unabhängig haben willst:

((TextBox)(sender)).Text = "asdf";

Gruß

J
3.331 Beiträge seit 2006
vor 15 Jahren

Hallo,

ich verstehe Deinen Ansatz nicht. Wozu bekommt die Methode Einheitenrechner überhaupt die Argumente sender und e? Wozu dient Parent? So, wie es dasteht, ist das der Parent der Klasse; das ist (ohne weitere Festlegung) der Parent des Formulars; das ist die Anwendung oder der Desktop oder null.

Wenn Du einen Wert in txt_xoffset "reinschreiben" willst (ist das eine TextBox?), dann musst Du natürlich diese angeben:

private void Einheitenrechner(object sender,EventArgs e)
{
  txt_xoffset.Text = "asdf";
}

Vielleicht helfen Dir diese Nachfragen schon in die richtige Richtung. Jürgen

PS 1. Bitte Code markieren mit dem #-Button, das liest sich besser.

PS 2. Dein Problem klingt sehr nach fehlenden Grundlagen. Bitte verschaffe Dir diese selbst - siehe links die **Ressourcen **-, sonst wirst Du hier nicht viel Freude und Freunde finden.

PS 3. Killerhase war schneller, aber vielleicht hilft meine genauere Erläuterung zusätzlich.

691 Beiträge seit 2007
vor 15 Jahren

Hi.
Deine Methode txt_xoffset_Enter(object sender, EventArgs e) ist vermutlich mit dem Enter Event einer Textbox verknüpft. D.h. das in dem Parameter sender eine Referenz auf deine Textbox besteht. Wenn du von dort eine Funktion aufrufen willst, die als Parameter dieses Objekt bzw. Textbox enthält, dann kannst du es zwar machen, aber ich sehe bei diesem Methodenumfang nicht viel Sinn drin.
Du könntest also entweder in der txt_xoffset_Enter Methode oder in der Einheitenrechner Methode dem Objekt den Text zuweisen. Dafür musst du aber das Objekt noch in eine Textbox casten.

Ginge z.B. so

((System.Windows.Forms.TextBox)sender).Text = "blub";

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

Gelöschter Account
vor 15 Jahren

direktes aufrufen von eventbehandelnden methoden ist schlechter stil.

Ich habe eine Funktion die beim Betreten der Funktion aufgerufen wird:

methode. nicht funktion

und der soll dann das aufrufen und in txt_xoffset den wert reinschreiben

dann mach das doch? btw. warum gehst du den umweg über 2 eventmethoden? lass das event doch direkt auf die 2. methode zeigen.

((System.Windows.Forms.TextBox)sender).Text = "blub";

gerade bei eventmethoden mit der standardsignatur kommt es bei solchen impliziten casts schnell zu exceptions wenn man unvorsichtig wird. lieber explizit casten.

Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 15 Jahren

Danke fuer eure antworten.
ja ich weis, es heisst methode,..ich bin das von C noch so gewohnt 🙂