none
Labels in c# RRS feed

  • Frage

  • Hallo, ich habe von VB6 zu C# gewechselt. Mir ist jetzt aufgefallen, daß Labels keinen Index mehr haben, wenn sie mit Copy/Paste erzeugt werden. So kannte ich es von VB6.

    Gibt es in C' so eine Möglichkeit   z.B.  LabelXY[1]

                                                                LabelXY[2]  ... usw.

    Danke für die Antwort.

    Gruß

    Wolfgang

    Dienstag, 23. Oktober 2012 18:20

Antworten

  • Hallo Wolfgang,

    Control-Arrays wie in Visual Basic 6 gibt es unter .NET nicht mehr (auch nicht in Visual Basic .NET).

    Wenn Du Steuerelemente im Designer erzeugst erhalten sie einen eindeutigen Namen mit einer fortlaufenden Nummer. 

    Willst Du Gruppen von Steuerelementen zusammenfassen, so kannst Du dies über Arrays oder Auflistungen wie List(T) tun. 

    Über die Controls-Auflistung, über die jeder Container (Form, UserControl usw.) verfügt, kannst Du die enthaltenen Steuerelemente direkt ansprechen. Eine Diskussion in der um es so etwas ging wäre: Steuerelemente von einem Panel abfragen

    Falls Du spezielle Gewohnheiten nachbilden möchtest, so gibt es dafür meist einen Ersatz.

    Gruß Elmar

    Dienstag, 23. Oktober 2012 20:06
    Beantworter
  • Hallo,

    arbeitest du mit Windows Forms/WPF?

    Ich weiß zwar nicht, wie es mit VB6 war, aber in C# bekommen alle Labels einen Namen (In WPF kann man den auch löschen) Wenn du nun eines erzeugst, bekommt es Beispielsweise den Namen label1 Wenn du es nun Kopierst, kommt es auf deine Version von Visual Studio an, sowie auf deine Technik (WinForms/WPF) In VS 2012 werden die Labels in WinForms label1, dann label2 und label3 usw. benannt in WPF dagegen label1, label1_Copy, label1_Copy1, label1_Copy2, ...

    Zugreifen kannst dann immer über den Namen (label1, label2, label1_copy, ...)

    Ein Array (LabelXY[]) geht da nicht. Du könntest das Containerelement nehmen und dort die Kinder mit dem Index ansprechen, das macht aber soweit ich weiß keiner, zumal die Teilweise extrem durcheinander angeordnet zu sein scheinen.


    Koopakiller - http://koopakiller.ko.ohost.de/

    Dienstag, 23. Oktober 2012 18:58
    Moderator

Alle Antworten

  • Hallo,

    arbeitest du mit Windows Forms/WPF?

    Ich weiß zwar nicht, wie es mit VB6 war, aber in C# bekommen alle Labels einen Namen (In WPF kann man den auch löschen) Wenn du nun eines erzeugst, bekommt es Beispielsweise den Namen label1 Wenn du es nun Kopierst, kommt es auf deine Version von Visual Studio an, sowie auf deine Technik (WinForms/WPF) In VS 2012 werden die Labels in WinForms label1, dann label2 und label3 usw. benannt in WPF dagegen label1, label1_Copy, label1_Copy1, label1_Copy2, ...

    Zugreifen kannst dann immer über den Namen (label1, label2, label1_copy, ...)

    Ein Array (LabelXY[]) geht da nicht. Du könntest das Containerelement nehmen und dort die Kinder mit dem Index ansprechen, das macht aber soweit ich weiß keiner, zumal die Teilweise extrem durcheinander angeordnet zu sein scheinen.


    Koopakiller - http://koopakiller.ko.ohost.de/

    Dienstag, 23. Oktober 2012 18:58
    Moderator
  • Hallo Wolfgang,

    Control-Arrays wie in Visual Basic 6 gibt es unter .NET nicht mehr (auch nicht in Visual Basic .NET).

    Wenn Du Steuerelemente im Designer erzeugst erhalten sie einen eindeutigen Namen mit einer fortlaufenden Nummer. 

    Willst Du Gruppen von Steuerelementen zusammenfassen, so kannst Du dies über Arrays oder Auflistungen wie List(T) tun. 

    Über die Controls-Auflistung, über die jeder Container (Form, UserControl usw.) verfügt, kannst Du die enthaltenen Steuerelemente direkt ansprechen. Eine Diskussion in der um es so etwas ging wäre: Steuerelemente von einem Panel abfragen

    Falls Du spezielle Gewohnheiten nachbilden möchtest, so gibt es dafür meist einen Ersatz.

    Gruß Elmar

    Dienstag, 23. Oktober 2012 20:06
    Beantworter
  • Hallo WME070754,

    Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert


    Robert Breitenhofer, MICROSOFT   Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 30. Oktober 2012 12:09
    Moderator