Программным путем выберите ComponentOne TrueDBGrid Filterbar - PullRequest
1 голос
/ 22 июня 2011

Я использую элемент управления ComponentOne TrueDBGrid с включенной панелью фильтров. Я бы хотел изменить поведение по умолчанию, чтобы при нажатии на ячейку на панели фильтров текст в этой ячейке выбирался автоматически. Обычно я подключаю событие MouseDown и использую метод CellContained, чтобы проверить, какая ячейка была нажата, но это всегда возвращает -1 для строки и столбца для панели фильтра. Поэтому я не могу определить отдельную ячейку и не знаю, как выбрать конкретную ячейку на панели фильтров.

У кого-нибудь есть предложения, как мне это сделать?

1 Ответ

1 голос
/ 23 июня 2011

Публикация решения на случай, если кто-то столкнется с этой проблемой.

Вам нужно захватить вид элемента сетки ниже координаты, по которой вы щелкнули, используя PointAtEnum. Затем вы можете просто установить ячейку в режиме редактирования, установив для свойства сетки EditActive значение True. И вот как вы делаете это на мероприятии MouseUp:

Private Sub C1TrueDBGrid1_MouseUp(sender As Object, _
               e As System.Windows.Forms.MouseEventArgs) _
                  Handles C1TrueDBGrid1.MouseUp

If Me.C1TrueDBGrid1.PointAt(e.X, e.Y) = _
    C1.Win.C1TrueDBGrid.PointAtEnum.AtFilterBar Then
    Me.C1TrueDBGrid1.EditActive = True
End If

End Sub
...