Autor Beitrag
HCN
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 22

Xp Prof Sp2, Vista ultimate Sp1
C#, C++, VS 2008 Prof, MeVisLab
BeitragVerfasst: So 08.06.08 20:57 
Hallo,

in meinem Programm erzeuge ich beim starten des Forms mit einer Schleife X Objekte meines Typs RichTextBoxEx, füge diese einem RichTextBoxEx[] Array Names schachteln hinzu und lasse die später dann alle nach einem bestimmten Schema auf meinem Form anordnen.

Wenn ich dann z. B. allen eine bestimmte Eigenschaft verpassen möchte, nehme ich wieder eine Schleife und mache:

ausblenden C#-Quelltext
1:
this.schachteln[i].Text = "Bla Bla Bla";					


Schon hat jedes Objekt diese Eigenschaft.

Jetzt möchte ich jedem Objekt einen Eventhandler hinzufügen und dachte mir ich mache einfach:

ausblenden C#-Quelltext
1:
2:
 this.schachteln[i].MouseEnter += new EventHandler(this.schachteln_MouseEnter);
     this.schachteln[i].MouseLeave += new EventHandler(this.schachteln_MouseLeave);


(bis hier funktinierts)
und weiter in der Klasse dann eben:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
    private void schachteln_MouseEnter(object sender, EventArgs e)
        {
            this.schachteln[i].ForeColor = Color.Orange;
        }

        private void schachteln_MouseLeave(object sender, EventArgs e)
        {
            this.schachteln[i].ForeColor = Color.Black;
        }


(das geht leider nicht)

Das Ziel sollte sein das sich die Textfarbe beim Betreten / Verlassen NUR VON DEM OBJEKT ändert das den event ausgelöt hat. So geht es aber leider nicht. Ich kann ja schlecht für jedes Objekt eine eigene Methode schreiben, das es ja immer unterschiedlich viele Objekte sind ???

Wie teile ich der Methode denn mit von welcher schachtel[i] er die ForeColor ändern soll ????

Danke und Gruß HCN
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 08.06.08 21:02 
Hallo!

Der sender-Parameter enthält das Objekt, welches das Event ausgelöst hat. In Deinem Fall als die entsprechende RichTextBoxEx. Durch entsprechendes casten solltest Du auf alle Eigenschaften zugreifen können.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
HCN Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 22

Xp Prof Sp2, Vista ultimate Sp1
C#, C++, VS 2008 Prof, MeVisLab
BeitragVerfasst: So 08.06.08 21:39 
Aha danke ok, und wie mache ich das nun mit dem konvertieren ? Ich stehe ein wenig auf dem Schlauch....
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 08.06.08 21:43 
Für Grundlagen empfehle ich das OpenBook Visual C#, hier direkt mal der Abschnitt zu explizier Konvertierung. In diesem Fall:

ausblenden C#-Quelltext
1:
RichTextBoxEx rtbEx = (RichTextBoxEx)sender;					

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
HCN Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 22

Xp Prof Sp2, Vista ultimate Sp1
C#, C++, VS 2008 Prof, MeVisLab
BeitragVerfasst: So 08.06.08 21:53 
Achso, so einfach ? Danke Dir!!!!!

Dachte das mit dem Typ in Klammern davor schreiben umzu casten geht nur für so Standard Typen wie int, double usw....
Dann hab ich ja wieder was gelernt.