2014-07-02 4 views
1

У меня есть набор UserControls динамически создаваемых внутри панели со следующим кодомВызов конкретных UserControl динамически создаваемых

Dim X As Integer = 4 
Dim Y As Integer = 0 

For XRule As Integer = 0 To ArrayRuleNames.Length - 1 
    Dim MyRule As New RuleControl 
    Dim Location As Point 
    Location.X = X 
    Location.Y = Y 
    With MyRule 

     .RuleNameGpb.Text = ArrayRuleNames(XRule) 
     .RuleNumberTxt.Text = ArrayRuleNumbers(XRule) 
     .RuleNumberTxt.Tag = XRule 
     .SendBtn.Text = "Read" 
     .Parent = Me 
     .Location = Location 
     .Visible = True 
    End With 
    Panel.Controls.Add(MyRule) 
    Y += 80 
Next 

Внутри каждого пользовательского элемента управления есть некоторые объекты, такие как Флажки и TextBoxes и мне нужно установить в значение True o False свойство Checked и написать текст в текстовом свойстве из основной формы (WinForm).

Итак, я думал о том, чтобы определить имя в коде выше, а затем вызвать их по имени. Является ли эта концепция правильной или я должен делать это по-другому?

ответ

1

Дайте элементу управления имя:

With MyRule 
    .Name = "MyRule1" 
    .RuleNameGpb.Text = ArrayRuleNames(XRule) 
    .RuleNumberTxt.Text = ArrayRuleNumbers(XRule) 

, то вы можете сослаться на него:

If Panel.Controls.ContainsKey("MyRule1") Then 
    Dim MyRule As RuleControl = Panel.Controls("MyRule1") 
Смежные вопросы