VBA MSHFLEXGRID неверная информация .ROW в событии CLICK - PullRequest
0 голосов
/ 26 мая 2020

Я использую VBA MSHFLEXGRID, 2 сетки фактически находятся в одной и той же форме, одна под другой, поэтому, когда я выбираю строку в первой сетке, вторая показывает информацию о выборе первой строки сетки.

Ну, проблема в том, что вторая сетка после выбора строки в первой сетке, которая не дает никакой информации во второй (я помещаю данные через собственный набор записей сетки, и если я не хочу, чтобы он отображал информацию , я выхожу из процедуры загрузки, она становится сумасшедшей, и свойство .ROW в событии Click начинает возвращать фиксированное число, например, 4, вместо фактической строки, по которой щелкнули. Всегда число, которое представляет строку выше, чем последний (тот, который даже вне сетки). Я пробовал также .MOUSEROW, и этот все время возвращает 0 (когда сетка становится сумасшедшей).

Это никогда не происходит с первой сеткой, только со вторым. Я ничего не могу сделать без реальной информации о нажатой строке. Я видел это с разными решения проблема сбрасывается. Кажется, что этого не происходит с низкими разрешениями, такими как 1360x768, но это происходит с 1920x1080 и 2560x1440.

1 Ответ

0 голосов
/ 26 мая 2020

РЕШЕНО! Я пробовал кейсы и другие кейсы, чтобы попытаться понять, почему это случается иногда в случайных случаях, и наконец нашел это. Проблема возникает, когда вы устанавливаете набор записей непосредственно в сетку (Set Grid.Recordset = xxxx), а этот xxx пуст. Это, EOF. Итак, я делал .Clearstructure, а затем SET. После этого, если бы я сделал еще один SET (другой выбор второй сетки) с непустым набором записей, это было бы go сумасшедшим.

Итак, я просто назначил сначала объект набора записей, чтобы проверить, не запрос SQL пуст или нет, и если он не пуст и только тогда, назначьте набор записей сетке. О боже, это уже давно сводило меня с ума.

...