【问题标题】:Calling specific UserControl dynamically created调用特定的 UserControl 动态创建
【发布时间】:2014-07-02 15:44:32
【问题描述】:

我有一组使用以下代码在面板内动态创建的用户控件

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

每个用户控件内部都有一些对象,例如 Checkboxes 和 TextBoxes,我需要将 Checked 属性设置为 True o False 并在主 Form(WinForm) 的 Text 属性上写入文本。

所以,我想在上面的代码中定义一个名字,然后用名字来称呼它们,这个概念是正确的还是我应该用不同的方式来做?

【问题讨论】:

    标签: vb.net winforms user-controls


    【解决方案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")
    

    【讨论】:

      猜你喜欢
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-02
      • 2019-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多