Выбор нескольких рядов в MSFlexGrid

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dr-vic
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 13.01.2004 (Вт) 0:05

Выбор нескольких рядов в MSFlexGrid

Сообщение dr-vic » 07.09.2004 (Вт) 13:09

В описаниях я не нашел описания работы MSFlexGrid с выделением нескольких рядов. То есть, свойство .RowSel возвращает только последний выделенный ряд. А хотелось бы, чтоб возвращалось выделение с... по... Сам я пользуюсь таким кодом отлавливая событие SelChange:
Код:

Private selStart As Integer, selEnd As Integer

Private Sub FGrid1_SelChange()
Dim vInt As Integer
With FGrid1
If .RowSel = selEnd + 1 Then
selEnd = .RowSel
ElseIf .RowSel = selEnd - 1 Then
selEnd = .RowSel
ElseIf .RowSel = selStart - 1 Then
selStart = .RowSel
Else
selEnd = .RowSel
selStart = .RowSel
End If
If selEnd < selStart Then
vInt = selStart
selStart = selEnd
selEnd = vInt
End If
End With
End Sub

Может кто-нибудь подскажет более эстетичное решение? Да и сам код работает не всегда корректно...
Заранее благодарен.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.09.2004 (Вт) 18:00

RowSel и ColSel возвращают один угол выделения, Row и Col - другой.
Изображение

dr-vic
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 13.01.2004 (Вт) 0:05

Сообщение dr-vic » 08.09.2004 (Ср) 1:02

Tyomitch, или ты меня не понял, или я тебя. Есть грид, у которого выставлено SelectByRows. Зажимаешь шифт и ползешь по гриду. Получается выделение на несколько рядов. Причем RowSel и
Row совпадают. Причем тут углы?

Leon_
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 333
Зарегистрирован: 19.05.2004 (Ср) 16:31
Откуда: Moscow

Сообщение Leon_ » 08.09.2004 (Ср) 7:48

Выделять несколько строк можно и не исплзуя Shift, просто мышью.
А позиции начальной и последней выделенной строк и есть Row и RowSel -- твои selStart и selEnd.

dr-vic
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 13.01.2004 (Вт) 0:05

Сообщение dr-vic » 11.09.2004 (Сб) 23:47

Нет, господа, подождите. Есть выделение, деланное не важно как - мышью или шифтом. Курсор смещается (без изменения выделения), .row изменяется, .rowSel остается прежним, а в этом случае как получить selBegin?

soljen
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 69
Зарегистрирован: 06.05.2004 (Чт) 15:47
Откуда: Из темноты...

Сообщение soljen » 12.09.2004 (Вс) 8:38

Доброго времени суток!

Я вот ято-то вообще ничего не понял что ребуется получить!
Объясните ПЛЗ поподробнее!

Заранее благодарен!
Тиха украинская ночь, но сало надо перепрятать...
(R)Jeka


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

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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 10

    TopList