Как программно перемещаться по ячейка DataGrid и выделять их

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

Как программно перемещаться по ячейка DataGrid и выделять их

Сообщение ВалГер » 16.03.2005 (Ср) 11:02

Есть ли возможность программно перемещаться по ячейкам DataGrid и, самое главное, выделить ставшую текущущей ячейку? То есть, фактически, имитировать щелчок мышкой на нужной ячейке.

Перемещение, как я предполагаю, это

DataGrid1.Col = <Номер-колонки>
DataGrid1.Row = <Номер-строки>

Но при этом ячейка не выделяется

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 16.03.2005 (Ср) 12:27

А вот так:
Код: Выделить всё
Private Sub Command1_Click()
DataGrid1.Col = 2 'Номер столбца, на который надо переместиться
DataGrid1.Row = 3 'Номер строки, на которую надо переместиться
DataGrid1.EditActive = True 'Перевод фокуса на установленную ячейку
End Sub

Наслаждайся.
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

ВалГер
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 09.11.2004 (Вт) 17:34
Откуда: Псков

Сообщение ВалГер » 16.03.2005 (Ср) 14:04

Спасибо, всё работает. А то я по этому MSDN-у обыскался. Есть всё что угодно, кроме того, что надо.
Может быть подскажете заодно, как сделать так, чтобы в редактируемой ячейке DataGrid мигал бы курсор?

С уважением ВалГер

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 16.03.2005 (Ср) 16:51

Да без проблем! Надо к вышеуказанному добавить:
Код: Выделить всё
DataGrid1.SelStart = 0
DataGrid1.SelLength = 0

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

ВалГер
Обычный пользователь
Обычный пользователь
 
Сообщения: 65
Зарегистрирован: 09.11.2004 (Вт) 17:34
Откуда: Псков

Сообщение ВалГер » 17.03.2005 (Чт) 14:58

Andrev писал(а):Да без проблем! Надо к вышеуказанному добавить:
Код: Выделить всё
DataGrid1.SelStart = 0
DataGrid1.SelLength = 0

В этом случае курсор будет мигать на первой позиции.


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

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 17.03.2005 (Чт) 16:52

Не знаю, не знаю... У меня все нормально работает. Курсор мигает на первой позиции. На всякий случай вот полный код нажатия на кнопку:
Код: Выделить всё
Private Sub Command1_Click()
DataGrid1.Col = 2 'Номер столбца, на который надо переместиться
DataGrid1.Row = 3 'Номер строки, на которую надо переместиться
DataGrid1.EditActive = True 'Перевод фокуса на установленную ячейку
DataGrid1.SelStart = 1 'Номер позиции, на которую перемещаем курсор
DataGrid1.SelLength = 0
End Sub
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

    TopList