无法将控件重命名为我删除的控件的名称

Cannot rename control to that of a control I deleted

我在使用 VB.Net 中的两个 UserControl 时遇到问题。我正在使用 VS2012。 UserControl 是一个名为 DataDriver 的面板,它在运行时在窗体上动态创建。 DataDriver 中有一个控件,它是项目中定义的另一个 UserControl 的实例,名为 DataLinkDataLink 允许用户 select 一个数据源(实际上是一个命名的连接字符串)。两个 UserControls 都在同一个项目中定义。

在过去 24 小时内的某一时刻,我在设计模式下打开了 DataDriver,它显示了我经常看到的屏幕:"To prevent possible data loss before loading the designer, the following errors must be resolved: " 带有 "Ignore and Continue" link 就可以了,我点击了。我不完全确定为什么会出现这种情况,但确实如此。

打开 DataDriver 后,我发现 UserControl DataLink 消失了。我创建了它的一个新实例并尝试将其重命名为原始名称 (ucDataLink),但出现错误:

Property value is not valid. There is already a component named 'ucDataLink'. Components must have unique names, and names must be case-insensitive. A name also cannot conflict with the name of any component in an inherited class.

我已经关闭了项目,完成了 UserControl DataDriver 的三个组件(设计器、resx 和代码)并删除了对 ucDataLink 的所有引用,但仍然是继续提出这个错误。我可能会使用不同的名称,但这是有意义的名称,我想知道如何解决它。

额外信息。 DataDriver 控件仅在运行时实例化。创建它的表单有一个被调用的 public 方法。表单如下设置动态控件,然后使用me.ShowDialog().

显示
moActionEdit = New DataDriver
moActionEdit.Globals = g
moActionEdit.ConnectionName = mcConnectionName
moActionEdit.left = 0
moActionEdit.Top = 0
moActionEdit.width = pnl.Width
moActionEdit.Height = pnl.Height
moActionEdit.Anchor = AnchorStyles.Top + AnchorStyles.Left + AnchorStyles.Right + AnchorStyles.Bottom
moActionEdit.Job = moJob
pnl.Controls.Add(moActionEdit)
moActionEdit.Visible = True
If Not moActionEdit.Init() Then
    moActionEdit.Visible = False
    Throw New DolphinException("Could not initialise data entry panel for this action type correctly.", True)
End If

如何才能成功地将我的 UserControl 重命名回 ucDataLink

有时当您删除一个控件时,它不会在 .Designer 文件中被删除。这不是一件特别安全的事情,所以要小心。

解决方案资源管理器中,单击按钮显示所有文件。

然后同样在解决方案资源管理器中,单击表单旁边的向右箭头。

在展开的列表中,您会看到一个类似于 Form1.Designer.vb

的文件

我强烈建议在进行任何更改之前使用 Windows 文件资源管理器制作此文件的副本。

打开此文件并查找包含已删除控件名称的所有行并将其删除。保存文件,您现在应该可以将新控件重命名为与旧控件相同的名称。