Индекс janus gridex после перетаскивания столбца

У меня проблема с Janus GridEX в vb6.

Я реализовал метод _keydown для поиска в базе данных, поэтому, когда я нажимаю определенную клавишу, я выполняю поиск с изменениями в зависимости от выбранного столбца.

Для этого я получаю индекс столбца, в котором я нахожусь, используя метод .col gridex, все работает правильно, но если я перетащу столбец в gridex, меняя его положение, значение .col изменится, но странное дело в том, что если я попытаюсь получить доступ к значению столбца с помощью метода .value(intColumn), кажется, что индекс столбца не изменится.

Например, если я выполняю заданный поиск, когда нахожусь в столбце номер 4, и перетаскиваю столбец с индексом выше 4 в позицию с индексом меньше 4, я получаю следующую ситуацию: .col дает мне значение 5, но если я вызываю .value (5), я не получаю значение, которое раньше было в столбце 4, я получаю его, если я вызываю .value (4).

Поэтому я не понимаю, как меняется индекс при перетаскивании столбца. У кого-нибудь есть идеи?


person user2189832    schedule 09.04.2013    source источник
comment
Я решил! Я использовал объект JSColumn, в котором я сохраняю столбец в той позиции, в которой я нахожусь, затем я получаю индекс столбца, вызывая метод .index JSColumn. Set tmpJsCol = jsgdLisMov.Columns.ItemByPosition(jsgdLisMov.col) intCol = tmpJsCol.Index   -  person user2189832    schedule 10.04.2013


Ответы (1)


Я использую библиотеку Janus и всегда использую свойство Key вместо жестко заданных номеров столбцов.

Вот один пример:

Decimal name = String.Empty;

if (grdEx.CurrentColumn.Key == "Name")
    name = Convert.ToString(grdEx.GetValue("Name"));

Это всегда предотвратит ошибки, подобные той, что была в вашем случае.

person Adel Khayata    schedule 03.08.2013