2013-09-23 4 views
0

У меня есть основная winform, в которой размещается UserControl. Пользовательский элемент управления содержит различные другие элементы управления, включая текстовые поля, кнопки и сетку. Я использую UserControl.ActiveControl.Name, чтобы определить имя текущего активного элемента управления. Это в основном работает хорошо.ActiveControl.Name иногда возвращает пустую строку

Однако иногда я получаю пустую строку вместо фактического имени элемента управления. Моя сетка имеет 1 редактируемую колонку, и я чувствую, что она так привязана к ней. Я имею в виду, когда я нахожусь в editmode, я получаю пустую строку для имени activecontrol, даже если сетка является активным элементом управления. Зачем?

Использование: VS2012, .NET 4.0

спасибо за любую помощь

ответ

1

Предполагая, что вы используете DataGridView; Когда вы находитесь в режиме редактирования, добавляется элемент управления, имя которого не указано. Таким образом, имя пустое, но элемент управления не является нулевым, поэтому там есть действительный элемент управления. Если вы посмотрите на свойство AccessibleName элемента управления, вы увидите значение «Редактирование управления».

+0

ОК, я проверил это, и вы на кнопке. Хороший материал здесь. И да, это DataGridView, и вы также подтвердили мое предположение о том, что это связано с элементом управления редактирования в столбце сетки. –

Смежные вопросы