Я пытаюсь настроить поведение пользовательского интерфейса в элементе управления Windows Forms PropertyGrid. Я хотел бы иметь возможность отвечать на щелчки и двойные щелчки на элементах GridItems, чтобы изменить состояние. Например, чтобы перевернуть двоичную или троичную переменную через ее состояния.
Я могу получить базовый вид, посмотрев потомка с именем typename "PropertyGridView" и могу перехватить его событие Click. Только проблема в том, что мне делать? Я не могу найти функции, которые отображают координаты мыши на элементах сетки.
Существует SelectedGridItem, но это не полезно. Существует множество мест, в которых вы можете щелкнуть элемент управления, который не обновляет это свойство, и поэтому при ответе на щелчок при условии, что SelectedGridItem обновлен, вы получите много неверных результатов.
Помимо покупки элемента управления сеткой коммерческой недвижимости или перехода на какой-либо вид сетки, могу ли я здесь что-нибудь сделать? PropertyGrid - это почти то, что мне нужно. Я даже думаю о том, чтобы побродить с Reflector и сделать несколько очень недружелюбных вещей с этим элементом управления, чтобы получить нужные мне данные. :)
Дополнительная информация: я знаю об использовании пользовательских классов UITypeEditor, и уже делаю это в других областях (палитра цветов). К сожалению, выполнение пользовательского интерфейса требует дополнительного щелчка (для просмотра или раскрытия какого-либо интерфейса). Например, я установил флажок с помощью UITypeEditor.PaintValue и очень хотел бы иметь возможность просто щелкнуть по нему, чтобы установить или снять флажок.