Вводит новый предмет в списки элементов управления ComboBox или ListBox, дополнительно позволяя вам указать его индекс.

Control.AddItem(cItem [, nIndex] [, nColumn])

Параметры

cItem

Определяет строковое выражение для ввода в элемент управления.

nIndex

Определяет позицию в списке предметов элемента управления, в которую будет помещен новый элемент. Если вы предоставили действительное значение для необязательного параметра nIndex, cItem помещается в указанную позицию в списке элемента управления. Если вы указали nIndex, который уже существует, предмет вставляет в эту позицию, а все предметы под этим предметов смещаются на одну позицию вниз в списочной части ComboBox или ListBox.

Если вы опустите nIndex, а свойство Sorted установлено в значение True (.T.), то cItem добавляется с учетом алфавитного порядка сортировки. Если вы опустите nIndex, а свойство Sorted установлено в значение False (.F.), то cItem добавляется в конец списочной части ComboBox или ListBox.

nColumn

Указывает колонку элемента управления, в которую добавляется новый предмет. По умолчанию подразумевается первая колонка.

Expand imageПримечания

Когда свойство RowSourceType установлено в 0 (None), то для добавления нового предмета используйте метод AddItem или AddListItem.

Каждый предмет, добавленный в ComboBox или ListBox имеет два присвоенных ему идентификационных номера:

  • nItemID, целое число, соответствующее уникальному ID предмета в элементе управления: первому предмету соответствует nItemID = 1 до тех пор, пока для него не указан другой nItemID.

  • nIndex, целое число, соответствующее порядку, в котором предмет отображается элементов управления: первому предмету в элементе управления соответствует nIndex = 1.

Метод AddItem всегда вставляет новую строку в многоколоночный ComboBox или ListBox. После того, как строка вставлена, колонки в этой строке должны быть заполнены с помощью синтаксиса .List(.NewIndex, nColumn).

Обратный слэж ("\") трактуется как специальный характер в случае, когда он используется в выражении для предмета. Для этого символа применяются приведенные ниже правила:

  • Вы можете заблокировать предмет в listbox или combobox с помощью одиночного обратного слэжа, если он находится в начале выражения. Когда вы таким способом блокируете предмет, он блокируется только для доступа к нему в помощью мыши, однако, пользователь продолжает иметь к нему доступ с помощью клавиатуры. Для полного блокирования предмета от доступа либо с помощью мыши, либо с помощью клавиатеры, добавьте к обратному слэжу закрывающую квадратную скобку ("\]").

  • Любое множество парных обратных слэжей, используемых в выражении отображается в виде одного. Например, один или два используемых вместе обратных слэжа, будут отображать один. Если в выражении присутствует три или четыре, то будут отображаться два и так далее. В приведенном ниже коде примера, используется предмет элемента управления listbox, содержащий путь в виде Universal Naming Convention (UNC). Код отобразит его в списке как \\MyServer\MyMachine\MyFolder.

      CopyCode imageСкопировать код
    MyForm.List1.AddItem("\\\\MyServer\\MyMachine\\MyFolder")
  • Если выражение начинается с множества обратных слэжей, предмет не отображается. Если вы желаете заблокировать предмет, который начинается с множества обратных слэжей, добавьте в начало выражения обратный слэж в сочетании с закрывающей квадратной скобкой (]). Например, примеденный ниже пример блокирует предмет, выражающий путь в виде UNC в списке элемента управления listbox.

      CopyCode imageСкопировать код
    MyForm.List1.AddItem("\]\\\MyServer\\MyMachine\\MyFolder")
  • Для того, чтобы включить линию разделителя, используйте обратный слэж в сочетании со значком переноса в качестве предмета, добавляемого в listbox. Например, приведенный ниже код добавляет линию разделителя в элемент управления listbox.

      CopyCode imageСкопировать код
    MyForm.List1.AddItem("\-")

Expand imageПример

Этот пример демонстрирует использование методов AddItem и AddListItem для ввода значений в массив ListItem. Для понимания показаны правильный и неправильный пути добавления предмета в массив.

  CopyCode imageСкопировать код
PUBLIC ofrmListExamples
ofrmListExamples=NEWOBJECT("frmListExamples")
ofrmListExamples.Show
RETURN

DEFINE CLASS frmListExamples AS form

 DataSession = 2
 Top = 0
 Left = 0
 Height = 262
 Width = 325
 Caption = "List and ListItem Array Пример"
 Name = "frmListExamples"

 ADD OBJECT shape1 AS shape WITH ;
  Top = 43, ;
  Left = 32, ;
  Height = 76, ;
  Width = 261, ;
  SpecialEffect = 0, ;
  Name = "Shape1"

 ADD OBJECT cbolistbad AS combobox WITH ;
  ColumnCount = 3, ;
  ColumnWidths = "100,100,50", ;
  Height = 22, ;
  Left = 111, ;
  Sorted = .T., ;
  Style = 2, ;
  TabIndex = 1, ;
  Top = 53, ;
  Width = 147, ;
  Name = "cboListBad"

 ADD OBJECT cbolistitem AS combobox WITH ;
  ColumnCount = 3, ;
  ColumnWidths = "100,100,50", ;
  Left = 34, ;
  Sorted = .T., ;
  Style = 2, ;
  TabIndex = 3, ;
  Top = 154, ;
  Name = "cboListItem"

 ADD OBJECT label1 AS label WITH ;
  FontBold = .T., ;
  Caption = "Using the List Array:", ;
  Height = 17, ;
  Left = 34, ;
  Top = 24, ;
  Width = 176, ;
  TabIndex = 7, ;
  Name = "Label1"

 ADD OBJECT label2 AS label WITH ;
  FontBold = .T., ;
  Caption = "Using the ListItem Array:", ;
  Height = 17, ;
  Left = 34, ;
  Top = 135, ;
  Width = 173, ;
  TabIndex = 8, ;
  Name = "Label2"

 ADD OBJECT cbolistgood AS combobox WITH ;
  ColumnCount = 3, ;
  ColumnWidths = "100,100,50", ;
  Height = 22, ;
  Left = 111, ;
  Sorted = .T., ;
  style = 2, ;
  TabIndex = 2, ;
  Top = 86, ;
  Width = 147, ;
  Name = "cboListGood"

 ADD OBJECT label3 AS label WITH ;
  Alignment = 1, ;
  Caption = "Wrong!", ;
  Height = 17, ;
  Left = 51, ;
  Top = 56, ;
  Width = 47, ;
  TabIndex = 9, ;
  Name = "Label3"

 ADD OBJECT label4 AS label WITH ;
  Alignment = 1, ;
  Caption = "Right!", ;
  Height = 17, ;
  Left = 58, ;
  Top = 89, ;
  Width = 40, ;
  TabIndex = 10, ;
  Name = "Label4"

 PROCEDURE cbolistbad.Init
  WITH This
   .AddItem( 'Cleveland' )
   .AddItem( 'Ohio', .NewIndex, 2 )
   .AddItem( '44122', .NewIndex, 3 )
   .AddItem( 'Caversham' )
   .AddItem( 'England', .NewIndex, 2 )
   .AddItem( 'RG4 8BX', .NewIndex, 3 )
   .AddItem( 'Buffalo' )
   .AddItem( 'New York', .NewIndex, 2 )
   .AddItem( '14228', .NewIndex, 3 )
   .AddItem( 'Milwaukee' )
   .AddItem( 'Wisconsin', .NewIndex, 2 )
   .AddItem( '43225', .NewIndex, 3 )
   .AddItem( 'International Falls')
   .AddItem( 'Minnesota', .NewIndex, 2 )
   .AddItem( '42666', .NewIndex, 3 )
  ENDWITH
 ENDPROC

PROCEDURE cbolistgood.Init
  WITH This
   .AddItem( 'Cleveland' )
   .List[.NewIndex, 2] = 'Ohio'
   .List[.NewIndex, 3] = '44122'
   .AddItem( 'Caversham' )
   .List[.NewIndex, 2] = 'England'
   .List[.NewIndex, 3] = 'RG4 8BX'
   .AddItem( 'Buffalo' )
   .List[.NewIndex, 2] = 'New York'
   .List[.NewIndex, 3] = '14228'
   .AddItem( 'Milwaukee' )
   .List[.NewIndex, 2] = 'Wisconsin'
   .List[.NewIndex, 3] = '43225'
   .AddItem( 'International Falls' )
   .List[.NewIndex, 2] = 'Minnesota'
   .List[.NewIndex, 3] = '42666'
  ENDWITH
 ENDPROC

 PROCEDURE cbolistitem.Init
  WITH This
   .AddListitem( 'Cleveland' )
   .AddListItem( 'Ohio', .NewItemID, 2 )
   .AddListItem( '44122', .NewItemID, 3 )
   .AddListItem( 'Caversham' )
   .AddListItem( 'England', .NewItemID, 2 )
   .AddListItem( 'RG4 8BX', .NewItemID, 3 )
   .AddListItem( 'Buffalo' )
   .AddListItem( 'New York', .NewItemID, 2 )
   .AddListItem( '14228', .NewItemID, 3 )
   .AddListItem( 'Milwaukee' )
   .AddListItem( 'Wisconsin', .NewItemID, 2 )
   .AddListItem( '43225', .NewItemID, 3 )
   .AddListItem( 'International Falls')
   .AddListItem( 'Minnesota', .NewItemID, 2 )
   .AddListItem( '42666', .NewItemID, 3 )
  ENDWITH
 ENDPROC
ENDDEFINE

Expand imageСмотрите также