首页 > 解决方案 > 重新创建 GUI 控件

问题描述

我正在使用一个名为 VideoCapX 的视频捕获控件,但我遇到了一个错误,经过数小时的调试,我确定修复故障的唯一方法是重新启动程序。重置控制。

我想知道是否有任何方法可以以编程方式重新创建 GUI 控件,也就是将其重置为表单打开时的状态。

我知道这是一个便宜的解决方案,但在这一点上,这是我唯一的选择。

标签: vb.netwinforms

解决方案


一般来说,这会起作用:

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 子句连接任何事件处理程序。

也就是说,您正在使用可能是相当复杂的自定义控件这一事实,很难说是否还有其他一些必需的步骤。


推荐阅读