Невозможно переименовать элемент управления в элемент управления, который я удалил - PullRequest
0 голосов
/ 29 мая 2018

У меня проблемы с двумя пользовательскими элементами управления в VB.Net.Я использую VS2012.UserControl - это панель с именем DataDriver , которая динамически создается в форме.В DataDriver есть элемент управления, который является экземпляром другого UserControl, определенного в проекте, и называется DataLink . DataLink позволяет пользователю выбрать источник данных (фактически именованную строку соединения).Оба элемента управления UserControl определены в одном и том же проекте.

В какой-то момент в течение последних 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 голосов
/ 29 мая 2018

Иногда, когда вы удаляете элемент управления, он не удаляется в файле .Designer.Это не особенно безопасно, так что будьте осторожны.

В Solution Explorer нажмите кнопку, чтобы отобразить все файлы.

Затем также в Solution Explorer нажмите стрелку вправо рядом с формой.

В расширенном списке вы увидите файл, похожий на Form1.Designer.vb

Я настоятельно рекомендую сделать копию этого файла с помощью проводника Windows, прежде чем вносить какие-либо изменения.

Откройте этот файл, найдите все строки, содержащие имя вашего удаленного элемента управления, и удалите их.Сохраните файл, и теперь вы сможете переименовать новый элемент управления в тот же, что и старый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...