Как предотвратить просмотр сетки, чтобы получить фокус? - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть 2 сетки.Когда пользователь выполняет редактирование в одной сетке, я хочу отключить фокус на другой сетке или, по крайней мере, на другой сетке изменить ее фокусированную строку.

Пример: родительская сетка, дочерняя сетка.

Если пользователь делает редактирование у детей конкретного родителя.Я хочу предотвратить внезапное смещение фокуса на другую родительскую строку.как это сделать?

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Единственный способ предотвратить фокусирование элемента управления - изменить его свойства «Включено» или «Видимый».

Простое изменение родительского свойства Enabled на «false» (например, для CellBeginEdit), а затем обратно на «true» (например, в событии CellEndEdit) не позволит пользователю выбрать новую родительскую строку.

0 голосов
/ 22 ноября 2011

Есть много способов сделать это, но вот как я бы это сделал (просто концепция, поэтому игнорируйте, если какое-либо свойство не совпадает):

Создайте свойство с именем mode, а затем используйте перечисление, чтобы установить для него значение Изменить или Нет и т. Д.

Предположим, у вас есть GridViewParent и GridViewChild. В событии FocusedRow дочерней сетки в начале всего кода установите значение режима на Edit, а в конце всего кода в событии установите его на None.

Затем в событии FocusedRow родительской сетки проверьте, является ли значение режима редактируемым или нет, если это редактирование, тогда используйте e.Cancel или что-то еще, чтобы выйти из сфокусированного события родителя.

Теперь, если вы дадите мне точную информацию о том, какую сетку вы используете, я могу отправить вам код.

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