Поделиться через


Изменение ширины столбцов в списке с несколькими столбцами

В следующем примере свойство ColumnWidths используется для изменения ширины столбцов многоколоний ListBox. В примере используются три элемента управления TextBox для указания ширины отдельных столбцов, а событие Click используется для указания единиц измерения каждого элемента TextBox.

Чтобы использовать этот пример, скопируйте пример кода в редактор скриптов формы. Чтобы запустить код, необходимо открыть форму, чтобы активировать событие Open . Убедитесь, что эта форма содержит:

  • Элемент ListBox с именем ListBox1.

  • три настраиваемых текстовых поля с именами Text1, Text2 и Text3;

  • Три элемента управления TextBox с именем TextBox1, TextBox2 и TextBox3, привязанные к пользовательским текстовым полям выше.

  • Объект CommandButton с именем CommandButton1.

Введите значение 0, чтобы скрыть столбец.

Dim MyArray(2, 3) 
Dim ListBox1 
Dim TextBox1 
Dim TextBox2 
Dim TextBox3 
Dim CommandButton1 
 
Sub Item_Open() 
Dim i, j, Rows 
 
Set ListBox1 = Item.GetInspector.ModifiedFormPages("P.2").ListBox1 
Set TextBox1 = Item.GetInspector.ModifiedFormPages("P.2").TextBox1 
Set TextBox2 = Item.GetInspector.ModifiedFormPages("P.2").TextBox2 
Set TextBox3 = Item.GetInspector.ModifiedFormPages("P.2").TextBox3 
Set CommandButton1 = Item.GetInspector.ModifiedFormPages("P.2").CommandButton1 
 
ListBox1.ColumnCount = 3 
Rows = 2 
 
For j = 0 To ListBox1.ColumnCount - 1 
 For i = 0 To Rows - 1 
 MyArray(i, j) = "Row " & i & ", Column " & j 
 Next 
Next 
 
ListBox1.List() = MyArray 'Load MyArray into ListBox1 
 
TextBox1.Text = "1 in" '1-inch columns initially 
TextBox2.Text = "1 in" 
TextBox3.Text = "1 in" 
 
End Sub 
 
Sub CommandButton1_Click() 
 'ColumnWidths requires a value for each column separated by semicolons 
 ListBox1.ColumnWidths = TextBox1.Text & ";" & TextBox2.Text & ";" & TextBox3.Text 
End Sub 
 
Sub Item_CustomPropertyChange(ByVal Name) 
msgbox Name 
Select Case Name 
Case "Text1" 
 'ColumnWidths accepts points (no units), inches or centimeters; make inches the default 
 If Not (InStr(TextBox1.Text, "in") > 0 Or InStr(TextBox1.Text, "cm") > 0) Then 
 TextBox1.Text = TextBox1.Text & " in" 
 End If 
Case "Text2" 
 'ColumnWidths accepts points (no units), inches or centimeters; make inches the default 
 If Not (InStr(TextBox2.Text, "in") > 0 Or InStr(TextBox2.Text, "cm") > 0) Then 
 TextBox2.Text = TextBox2.Text & " in" 
 End If 
Case "Text3" 
 'ColumnWidths accepts points (no units), inches or centimeters; make inches the default 
 If Not (InStr(TextBox3.Text, "in") > 0 Or InStr(TextBox3.Text, "cm") > 0) Then 
 TextBox3.Text = TextBox3.Text & " in" 
 End If 
End Select 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.