2008-09-23 3 views
1

Я пытаюсь выполнить пользовательское поведение пользовательского интерфейса в элементе управления Windows Forms PropertyGrid. Я хотел бы иметь возможность реагировать на клики и двойные щелчки на GridItems для изменения состояния. Например, чтобы перевернуть двоичную или тройную переменную через ее состояния.Как найти GridItem, нажав на PropertyGrid?

Я могу получить доступ к основному виду, просмотрев дочернее имя typename «PropertyGridView» и могу связать его событие Click. Только проблема в том, что мне делать? Я не могу найти функции, которые отображают координаты мыши на элементах сетки.

Есть SelectedGridItem, но это не помогает. Есть много мест, на которые вы можете щелкнуть элемент управления, который не обновляет это свойство, и поэтому реагирование на щелчок на предположении, что SelectedGridItem обновляется, приведет к множеству неправильных результатов.

Помимо покупки элемента управления сетью коммерческой недвижимости или переключения на вид сетки, можно ли здесь что-нибудь сделать? PropertyGrid - это почти то, что мне нужно. Я даже рассматриваю возможность бродить с Reflector и делать очень недружелюбные вещи с помощью этого элемента управления, чтобы получить данные, которые мне нужны. :)

Дополнительная информация: Я знаю об использовании пользовательских классов UITypeEditor, и уже делаю это в других областях (выбор цвета). К сожалению, для выполнения пользовательских пользовательских интерфейсов требуется дополнительный клик (для просмотра или выпадания некоторых пользовательских интерфейсов). Например, я установил флажок с помощью UITypeEditor.PaintValue и хотел бы просто нажать на него, чтобы проверить/снять отметку.

ответ

2

Если вам нужно перевернуть значения простого типа, вы можете иметь значение перечисления, отображаемое в сетке свойств. Это будет автоматически отображаться в виде выпадающего списка. Если вам нужно создать какой-то более умный редактор пользовательского интерфейса я предлагаю вам взглянуть на следующие статьи, которые объясняют, как создать пользовательский интерфейс в таблице свойств: http://msdn.microsoft.com/en-us/library/aa302334.aspx http://msdn.microsoft.com/en-us/library/aa302326.aspx

Если вы хотите обработать значение изменение в сетке свойств, чтобы что-то сделать в приложении или изменить значения в сетке свойств, вы можете обрабатывать OnPropertyValueChanged , который создается после каждого изменения сетки свойств.

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

+0

Я пытаюсь ускорить поток пользовательского интерфейса - выпадающее меню слишком много. Вот хороший пример того, что я имею в виду. Я установил флажок через UITypeEditor.PaintValue для свойств bool. Я хочу проверить/снять флажок, щелкнув по флажку. Двойной щелчок Я хочу, чтобы перейти через простые перечисления. – scobi 2008-09-23 16:53:24