powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отставание события DataGrid_Click()
5 сообщений из 5, страница 1 из 1
Отставание события DataGrid_Click()
    #33978966
if_r_it
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

По клику на Gride значение текущего поля должно присваиваться полю Text объекта Text1.
Однако на практике значение присваивается Text1.Text лишь при повторном клике на DataGrid1, т.е. при повторном возникновении события DataGrid1_Click.
Получается, что данные, отображаемые на Text1.Text, "отстают" ровно на один мышиный клик.
Из дебаггера видно, что после завершения DataGrid1_Click() данные в поле Text не изменяются на актуальные.


Код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub DataGrid1_Click()
If Not IsNull(rs.Fields.Item(i).Value) Then
Text1.Text = CStr(rs.Fields.Item(i).Value)
Else
Text1.Text = ""
End If
End Sub

Вероятно, я где-то ступил, но самостоятельно увидеть свою ошибку не способен, ибо глаз уже "замылилися".



Спасибо за внимание.
...
Рейтинг: 0 / 0
Отставание события DataGrid_Click()
    #33979033
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое у вас i и где оно меняется?
Попробуйте повесить эту обработку на событие EnterCell.
...
Рейтинг: 0 / 0
Отставание события DataGrid_Click()
    #33979927
if_r_it
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MelkiadesА что такое у вас i и где оно меняется?
Попробуйте повесить эту обработку на событие EnterCell.

К сожалению у DataGrid нет события EnterCell(но пробовал использовать и другие события), у MsFlexGrid есть, да... но не у DataGrid. Пожалуй, стоит попробовать MsFlexGrid.

А i изначально установлено в 0. В любом случае экспериментально выяснено, что при других начальных значениях всё остаётся также.
i ещё изменяется посредством ScrollBar-a.
Самое интересное то, что при изменении значений i с помощью события
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub HScroll1_Change()
i = HScroll1.Value
If Not IsNull(rs.Fields.Item(i).Value) Then
Text1.Text = CStr(rs.Fields.Item(i).Value)
Else
Text1.Text = ""
End If
End Sub
,
значение Text1.text устанавлиается именно с текущей строки, выделенной на DataGrid(а не с педыдущей выделенной строки, как в случае с DataGrid_Click). Т.е. актуальные данные можно получить посредством передвижения "ползунка". Почему одно событие срабатывает так как нужно, а другое - несколько иначе, мне совершенно неясно.
...
Рейтинг: 0 / 0
Отставание события DataGrid_Click()
    #33996023
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
MsgBox DataGrid1.Text
End Sub
...
Рейтинг: 0 / 0
Отставание события DataGrid_Click()
    #33997295
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Private mblnClicked As Boolean

Private Sub DataGrid1_Click()
mblnClicked = True
End Sub

Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
On Error Resume Next

If mblnClicked Then
Text1.Text = DataGrid1.Text
mblnClicked = Not mblnClicked
End If
End Sub
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отставание события DataGrid_Click()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]