Comment obtenir la propriété de contrôle par «nom de chaîne»?
j'ai créé des boutons et des textboxs par codage dans la boucle suivante,
le résultat
'T(x).Name = "text_1"
'T(x).Name = "text_2"
'T(x).Name = "text_3"
'....
'B(x).Name = "button_1"
'B(x).Name = "button_2"
'B(x).Name = "button_3"
'...
et je veux obtenir textbox propriété whene je clique sur le bouton,
je peux obtenir le bouton de la propriété lorsque vous cliquez sur j'aime button_1.Name.ToString
mais je ne peux pas obtenir le text_1,2,3 .... de la propriété.
je fais un peu d'astuce en fonction split button_1.Nom.ToString et obtenir le dernier numéro
et l'ajouter à la zone de texte nom comme "text_" & button_1.Name.ToString
mais je ne peux pas convertir cette chaîne de caractères de l'objet.
Mise à jour
Voici le code que j'utilise pour charger les commandes dans la boucle:
C_A_TEXT(x) = New TextBox()
C_A_TEXT(x).Dock = System.Windows.Forms.DockStyle.Fill
C_A_TEXT(x).Location = New System.Drawing.Point(270, 5)
C_A_TEXT(x).Margin = New System.Windows.Forms.Padding(0)
C_A_TEXT(x).Size = New System.Drawing.Size(70, 27)
C_A_TEXT(x).TabIndex = 5
C_A_TEXT(x).Name = "NEW_RECHARGE_COUNT_TEXT_" & x
Mise à jour 2
Y a plus de code:
AddHandler C_A_BUTTONS(x).Click, AddressOf C_A_BUTTON
Private Sub C_A_BUTTON(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim thisButton As Button = sender Dim A = CType(Me.Controls("NEW_RECHARGE_COUNT_TEXT_1"), TextBox)
MsgBox(A.Text.ToString) 'Error!
End Sub
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Vous pouvez accéder aux commandes par nom par le biais du
Form.Controls
de la propriété, par exemple:Rapidement une astuce utile de noter, vous ne semblez pas avoir à spécifier le type de contrôle à l'intérieur de la CType déclaration aux fins de l'accès à un contrôle sur votre formulaire. Je suis tombé sur cette lorsque vous essayez d'accéder à plusieurs types de contrôles de formulaire, tels que des boutons et des zones de texte, tous avec la même ligne de code.
Noter que, plutôt que de préciser exactement quel type de contrôle, telles que la 'zone de texte' ou 'Bouton', il vous suffit de l'état "Contrôle". Cela vous permet de vous universellement changement de tout type de contrôle, sans avoir à préciser son type.
Je ne pouvais pas trouver n'importe où d'autre, alors j'ai pensé que je devais le partager!
Ci-dessous est le code.
J'espère que cela aide.
Le titre du fil et de la description du problème à portée de main semblent un peu différents les uns des autres.
Pour répondre à vos titre (pour trouver un contrôle par son nom) utiliser les éléments suivants:
Plus d'informations sur cette méthode peut être trouvé ici .
Pour répondre à la description de votre problème (pour accéder à un code de contrôle générés après il est cliqué) procédez de la manière suivante:
Dans la boucle où vous créez le contrôle(s) ajouter le gestionnaire suivant
...et puis cela permettra de gérer l'événement click