独立的代码和控件重复集(VB.net)

时间:2014-02-26 08:02:37

标签: vb.net

请帮助 - vb.net。

enter image description here

正如你在图片中看到的那样,我有一组控件,我想将它们与编码一起复制25次,但是,我希望它们彼此独立工作......我不是知道我想要的是可能的,但请告诉我:D 到目前为止,我已经复制并粘贴了25次控件,我正在忙着重命名allllll按钮和标签等......而且它将永远消失!

1 个答案:

答案 0 :(得分:1)

在这种情况下,我会创建一个UserControl。为此:

  1. 右键单击您的解决方案并添加/用户控制
  2. 将您的按钮,标签和诸如此类的东西放在控制设计器中
  3. 编译您的项目。
  4. 您现在应该能够在工具箱中看到自己的控件。在表单上放一两个(或者你喜欢多少个)。

    您应该考虑的下一件事是:每个OurOwnControl-Instance中的内容总是相同的,有什么不同?

    从上面的屏幕截图中我看到,有一个标签“Drive 1”。现在每个OurOwnControl-Instance都是相同的,包括“DriverLabel”。要更改此项,请将以下内容添加到UserControl:

    Public Property DriveLabelText() As String
        Get
            Return lblDriver.Text
        End Get
        Set(ByVal value As String)
            lblDriver.Text = value
        End Set
    End Property
    

    编译您的项目。现在,您应该能够在表单上的控件上更改DriverLabel属性。

    当UserControl中发生“事情”时,您可能需要做的下一件事是(在表单上)做不同的事情。假设您需要知道何时单击“开始”按钮。如果总是发生同样的事情,只需将Code放在UserControl内的StartButton_Click事件处理程序中。但是,如果你想要不同的东西,取决于司机呢?将以下内容放在UserControl中:

    Public Event StartButtonClicked As EventHandler
    
    Private Sub StartButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartButton.Click
        RaiseEvent StartButtonClicked(Me, New EventArgs())
    End Sub
    

    编译您的项目。您现在应该能够在表单中订阅StartButtonClicked事件。

    我希望这足够详细:)

    问:我如何从form1中检索数值的值,并在我的新用户控件中使用它?

    有(至少)两种可能性:

    1)正确的方法:你不应该。在理想的世界中,UserControl应该对周围的世界一无所知。受托人表格应从外部设定所需的价值。您可以使用上述属性执行此操作。

    原因是:如果您决定在一个完全不同的项目中使用新的ShinyControl,会发生什么?表格很可能会有所不同。

    2)懒惰的方式:

    Dim myForm As Form1 = Me.FindForm()
    Dim foo = myForm.UpDownControl1.Value