Выделение строки mshflexgrid правой кнопкой

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Malone32®
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 116
Зарегистрирован: 23.01.2005 (Вс) 21:19
Откуда: Оттуда

Выделение строки mshflexgrid правой кнопкой

Сообщение Malone32® » 02.09.2006 (Сб) 22:39

Как выделить строку mshflexgrid нажатием на правую кнопку мыши?

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 03.09.2006 (Вс) 19:24

Обрабатывай событие _MouseDown или _MouseUp
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Malone32®
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 116
Зарегистрирован: 23.01.2005 (Вс) 21:19
Откуда: Оттуда

Сообщение Malone32® » 03.09.2006 (Вс) 22:23

Код: Выделить всё
Private Sub MSHFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
MSHFlexGrid1.Row = MSHFlexGrid1.MouseRow
End Sub


У меня выделяется 1 ячейка, я надо чтобы выделялась строка.....

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 03.09.2006 (Вс) 22:37

Код: Выделить всё
Private Sub MSHFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = 2 Then
        MSHFlexGrid1.Row = MSHFlexGrid1.MouseRow
        MSHFlexGrid1.ColSel = MSHFlexGrid1.Cols - 1
    End If
End Sub
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 04.09.2006 (Пн) 3:57

Не совсем правильно. Во-первых, для построчного выделения в этом гриде есть отдельное свойство, SelectionMode или как-то так, не помню. В нем можно выставить, чтобы он всегда построчно выделял.

Ну а если это не подходит, то в предыдущем примере перед установкой ColSel добавить:
Код: Выделить всё
MSHFlexGrid1.Col = 0

Иначе выделено будет, начиная не с первого столбца, а с того, в который был клик.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 04.09.2006 (Пн) 4:27

Вообще-то подразумевалось, что автор уже использовал .SelectionMode. Но если .SelectionMode = 1 (By Row), то по клику левой кнопкой будет выделять всю строку. А если добавить код, приведенный автором, то выделять начнет всего лишь одну ячейку. В этом случае и надо добавить только .ColCell=.Cols-1 и не нужен .Col
Хотя конечно мне нужно было это уточнить.
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Malone32®
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 116
Зарегистрирован: 23.01.2005 (Вс) 21:19
Откуда: Оттуда

Сообщение Malone32® » 04.09.2006 (Пн) 15:58

Спасибо, теперь все работает как надо!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 56

    TopList