:: Главная :: Решения :: Статьи :: Проект "Русский help" :: Файловый архив :: Фотоальбом :: Ссылки ::
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  


Форумы  :: FAQ FoxPro

Как выделить всю активную строку Grid
Дата: 24.04.05 11:10:28 ОтветитьЦитировать

Вопрос

При перемещении по Grid выделяется только активная ячейка. Как выделить цветом все ячейки активной строки Grid ?

Ответ

Для версии до Visual FoxPro 7 включительно.


  1. Необходимо создать дополнительное свойство формы ThisForm.nRecno. Можно сделать собственный класс Grid и создать этой свойство у собственно класса. И присвоить этому свойству числовое значение, например nRecno=1

    Новое свойство можно добавить через пункт меню Form (для класса Class), подпункт New Property или Edit Property/Method.

  2. В событии Grid.Init пишем следующий код

    IF RECNO(This.RecordSource)#0
    THIS.SetAll("DynamicBackColor",;
    "IIF(RECNO(This.RecordSource)=ThisForm.nRecno,RGB(255,255,0),RGB(255,255,255))",;
    "COLUMN")
    ENDIF
    Если свойство nRecno создано непосредственно в классе Grid, то, разумеется, следует вместо ThisForm.nRecno писать This.nRecno

  3. В событии Grid.AfterRowColChange пишем следующий код

    LPARAMETERS nColIndex
    ThisForm.nRecno = RECNO(This.RecordSource)
    This.Refresh()
    Если свойство nRecno создано непосредственно в классе Grid, то, разумеется, следует вместо ThisForm.nRecno писать This.nRecno



Все. Запускайте и пользуйтесь.

Замечание

Если в качестве источника данных для Grid используется НЕ алиас, т.е. Grid.RecordSourceType<>1 - Alias, то необходимо ввести еще одно свойство, которое будет содержать имя алиаса из которого следует считывать значение Recno(). Или же просто явно прописывать имя алиаса непосредственно в коде.



Для версии от Visual FoxPro 8 и выше.

Начиная с версии Visual FoxPro 8 ничего из приведенного выше писать не надо. Достаточно воспользоваться новыми свойствами Grid.

ThisForm.Grid.HighlightStyle = 2

Если полученный цвет Вас не устраивает, то используйте свойства

ThisForm.Grid.HighlightBackColor - цвет фона
ThisForm.Grid.HighlightForeColor - цвет шрифта

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

ThisForm.Grid.AllowCellSelection = .F.

Однако следует понимать, что если свойство HighlightStyle отвечает только за способ (стиль) выделения цветом, то свойство AllowCellSelection отвечает также и за возможность выбора отдельной ячейки.

Замечание

Если какая-либо колонка Grid имеет свойство Sparce = .F., то на нее не распространяется выделение цветом всей строки. В этом случае придется использовать старый способ для версий до Visual FoxPro 7 включительно, описанный выше.


------------------




Исправлено 1 раз(а). Последнее : Владимир Максимов, 23.11.10 12:48
Ratings: 0 negative/0 positive


Тема Просмотров Написано Написано
  Grid 9135 Владимир Максимов 01.03.05 22:13
  Как в дизайнере вставить объект в столбец Grid 10803 Владимир Максимов 03.03.05 22:25
  Пропадают настройки Grid, события столбцов, заголовков, ячеек 14317 Владимир Максимов 20.03.05 17:58
  Почему настройки ячейки видны только в активной ячейке 5141 Владимир Максимов 24.04.05 09:52
  Как выделить всю активную строку Grid 18065 Владимир Максимов 24.04.05 11:10
  Можно ли указать массив в качестве источника для Grid 6490 Владимир Максимов 26.04.05 20:34


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2006 Fox Club 
Яндекс.Метрика