userControl

14/02/2009 - 11:54 von Rolf Schrön | Report spam
Hallo NG,

mein Problem wurde vermutlich schon oft diskutiert - ich find aber die
Lösung nicht. (.NET 2005)

Ein UserControl bestehend aus z.B. 2 Textboxen hat 2 selbst definierte
Eigenschaften zum Zugriff auf den Inhalt der TextBoxen.
Setze ich dieses Control in der Entwicklungsumgebung auf ein Formular, kann
ich alle geerbten und neuen Eigenschaften aus dem Code ansprechen.
Soweit OK

Aber: Bringe ich dieses Control nach folgendem Muster zur Laufzeit in mein
Formular,

Private Sub CreateControlInForm(ByVal Nr As Integer)
Dim ctrlNew As UserCtrl.Zeile= New UserCtrl.zeile

With ctrl New

.Location = New System.Drawing.Point(X, Y )

.BackColor = Color.Aqua

. .Name = "CtrlX" & Nr.ToString

Controls.AddRange(New Control() {ctrlNew})

"A" und .Text2 = "B"

End With

End Sub

kann ich es in einer Schleife wiederfinden und über den Namen ansprechen

Private Sub Test

For Each ctrl As Control In Controls

If ctrl.GetType.Name = "Zeile" Then

ctrl.BackColor = Color.Violet

End If

Next

Me.Controls.Item("CtrlX" & "3").BackColor = Color.Red

End Sub

Bis hier OK

Wie aber spreche ich nun meine selbst hinzugefügten Eigenschaften des
controls an? Die Entwicklungsumgebung kann sie mir nicht vorschlagen, weil
das Control ja erst zur Laufzeit entsteht.

Rolf Schrön
 

Lesen sie die antworten

#1 Armin Zingler
14/02/2009 - 12:43 | Warnen spam
Rolf Schrön wrote:
Private Sub CreateControlInForm(ByVal Nr As Integer)
Dim ctrlNew As UserCtrl.Zeile= New UserCtrl.zeile



Dim ctrlNew As New UserCtrl.Zeile 'ist kürzer. Nur nebenbei.


For Each ctrl As Control In Controls

If ctrl.GetType.Name = "Zeile" Then



Besser:
If typeof ctrl is UserCtrl.Zeile then

ctrl.BackColor = Color.Violet



With directcast(ctrl, UserCtrl.Zeile)
.EigeneEigenschaft = 17
.EigeneMethode
End With

End If

Wie aber spreche ich nun meine selbst hinzugefügten Eigenschaften des
controls an? Die Entwicklungsumgebung kann sie mir nicht vorschlagen,
weil das Control ja erst zur Laufzeit entsteht.



Du musst zum Instanztyp casten, s.o.


Armin

Ähnliche fragen