我正在使用一个名为VideoCapX的视频捕获控件,并且遇到了一个错误,经过数小时的调试,我确定解决该故障的唯一方法就是重新启动该程序。重置控件。
我想知道有什么方法可以以编程方式重新创建GUI控件,也可以将其重置为打开表单时的状态。
我知道这是一个便宜的解决方案,但目前这是我唯一的选择。
答案 0 :(得分:2)
通常,这可以工作:
Me.SomeControl1.Dispose()
Me.SomeControl1 = New SomeControl
'Configure SomeControl1 here.
Me.Controls.Add(Me.SomeControl1)
其中SomeControl1
是在设计时将控件添加到表单时自动创建的字段。第一行从表单中删除现有控件,第二行用相同类型的新控件替换现有控件,最后一行将新控件添加到窗体中。您需要在两者之间设置新控件的适当属性,因此您可能希望保留旧控件周围的内容,以从中获取所需的属性值,例如
Dim newControl As New SomeControl
'Configure newControl here, e.g.
newControl.Location = Me.SomeControl.Location
Me.SomeControl1.Dispose()
Me.SomeControl1 = newControl
Me.Controls.Add(Me.SomeControl1)
请注意,将新控件分配给现有字段将自动将任何事件处理程序与Handles子句连接。
也就是说,您正在使用的可能是相当复杂的自定义控件,因此很难说是否还有其他必要的步骤。