请帮助 - vb.net。
正如你在图片中看到的那样,我有一组控件,我想将它们与编码一起复制25次,但是,我希望它们彼此独立工作......我不是知道我想要的是可能的,但请告诉我:D 到目前为止,我已经复制并粘贴了25次控件,我正在忙着重命名allllll按钮和标签等......而且它将永远消失!
答案 0 :(得分:1)
在这种情况下,我会创建一个UserControl。为此:
您现在应该能够在工具箱中看到自己的控件。在表单上放一两个(或者你喜欢多少个)。
您应该考虑的下一件事是:每个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