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

时间:2018-05-29 07:20:21

标签: vb.net winforms user-controls

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

在过去24小时内的某个时刻,我在设计模式下打开了 DataDriver ,它向我显示了我经常得到的屏幕:“为了防止在加载设计器之前可能的数据丢失,以下必须解决错误:“我点击了一个”忽略并继续“链接。我不完全确定为什么会这样,但确实如此。

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

  

属性值无效。已有一个名为的组件   'ucDataLink'。组件必须具有唯一的名称,名称必须是   不区分大小写。名称也不能与任何名称冲突   继承类中的组件。

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

额外信息。 DataDriver 控件仅在运行时实例化。它创建的表单有一个被调用的公共方法。表单设置如下的动态控件,然后使用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

1 个答案:

答案 0 :(得分:1)

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

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

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

在展开的列表中,您会看到类似Form1.Designer.vb的文件

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

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