В дополнение к отображению данных полей в элементе управления решетка - grid (далее по тексту справки будет использовано английское наименование - grid), вы можете иметь в его колонках элементы управления, для того что показать пользователю данные во вложенных текстовых боксах (textboxes), чек-боксах (checkboxes), выпадающих списках (drop-down list boxes), счетчиках (spinners), а также в других элементах управления. Например, если у вас в таблице имеется поле типа logical, то когда вы запускаете форму, пользователь может сказать, какие значения записи верны (.T.), а какие нет (.F.), увидев, отмечен чек-бокс или нет. Изменение значения такого поля также просто, как установка или снятие метки в чек-боксе.
Вы можете добавлять элементы управления в колонки grid интерактивно в конструкторе форм или написать код для ввода элементов управления в колонки в run time.
Для интерактивного добавления элементов управления в колонку grid
-
Добавьте в форму элемент управления grid.
-
В окне Properties (Свойства) (Visual FoxPro) установите значение свойство ColumnCount в номер желаемой колонки.
Например, впечатайте 2 для двух колоночного grid.
-
В окне Properties (Свойства) выберите родительскую колонку для элемента управления из бокса Object (Объект).
Например, выберите Column1 для добавления элемента управления в Column1. Контур grid изменится, указывая, что вы редактируемого объект в контейнере, когда вы сделаете выбор колонки.
-
Выберите желаемый элемент управления в полоске инструментов Form Controls (Элементы управления форм) и щелкните по родительской колонке.
Новый элемент управления не будет отображен в колонке grid в Form Designer (Конструкторе форм), но будет видим в run time.
-
Убедитесь, что в окне Properties (Свойство) элемент управления отображается в боксе Object (Объект) смещенным в родительской колонке.
Если новый элемент управления представляет собой checkbox, установите его свойство Caption (Заголовок) в " ", а свойство Sparse колонки установите в False (.F.).
-
Установите свойство ControlSource родительской колонки в желаемое поле таблицы.
Например, ControlSource колонки в приведенной ниже иллюстрации установлено в
products.discontinu
из базы данных Testdata.dbc в каталоге Visual FoxPro ...\Samples\Data. -
Убедитесь, что свойство CurrentControl родительской колонки указывает но новый элемент управления.
Когда вы запустите форму, элемент управления будет отображен в колонке grid.
![]() |
---|
Если вы желаете обеспечить центровку элемента управления checkbox в колонке grid, создайте класс контейнера, добавьте в него элемент управления checkbox и установите позицию checkbox в классе контейнера. Добавьте созданный класс контейнера в колонку grid и установите свойство ControlSource, содержащегося в контейнере checkbox в желаемое поле. |
Для удаления элементов управления из колонок grid в Form Designer (Конструкторе форм)
-
В боксе Object (Объект) окна Properties (Свойства) (Visual FoxPro) выберите элемент управления.
-
Активизируйте Form Designer (Конструктор форм).
Если окно Properties (Свойства) отображается, имя элемента управления отобразится в боксе Object (Объект).
-
Нажмите клавишу DELETE.
Кроме того, вы можете добавить элементы управления в колонку grid с помощью метода AddObject в программном коде.
Для программного добавления элементов управления в колонку grid
-
В событии Init элемента управления grid, используйте метод AddObject для добавления элементов управления в колонку grid и установите свойство CurrentControl колонки в добавленный элемент управления.
Например, приведенные ниже строки кода в событии Init элемента управления grid добавляет два элемента управления в колонку grid и указывает один из них в качестве текущего элемента управления:
![]() | |
---|---|
THIS.grcColumn1.AddObject("spnQuantity", "SPINNER") THIS.grcColumn1.AddObject("cboQuantity", "COMBOBOX") THIS.grcColumn1.CurrentControl = "spnQuantity" * Следующие строки кода обеспечивают видимость элемента управления * и отображение его в каждой строке grid THIS.grcColumn1.spnQuantity.Visible = .T. THIS.grcColumn1.Sparse = .F. |
В этом примере, у Column1 имеется три возможных значения текущего элемента управления:
-
spnQuantity
-
cboQuantity
-
Text1
(элемент управления, используемый по умолчанию)Замечание
Установка свойств на уровне Grid не переносятся на колонки или заголовки. В таких случаях вы должны установить свойства заголовков и содержащихся в колонках элементах управления напрямую; они не наследуют свои свойства из установок на уровне элемента решетки Column.
Совет
Для более правильного отображения элементов управления combobox в колонках grid, установите перечисленные ниже свойства combobox:
Скопировать код
BackStyle = 0 && Transparent Margin = 0 SpecialEffect = 1 && Plain BorderStyle = 0 && None
Смотрите также
Задачи
Как: установить форму для отношения "один-ко-многим", используя элемент управления GridКак: упростить использование элементов управления
Справочное руководство
Элементы управления для управления строками данныхЭлементы управления для расширения форм
Конструктор форм
Концепции
Форматирование элементов управления GridЭлементы управления и объекты, созданные в ранних версиях