0

У меня возникла проблема с элементом управления ListBox OpenOffice.org. Я создал небольшую форму (не диалог), которая содержит текстовое поле и ListBox и 2 кнопки.Как программно добавлять или удалять элементы в элементе управления ListBox FORM

Sub AddToList_ButtonClicked()

Dim oThisDoc As Object 
Dim oForms as Object 
Dim oForm as Object 

oThisDoc = thisComponent.getDrawPage() 
oForms = oThisDoc.getForms() 
oForm = oForms.getByName("SimpleForm") 

Dim oTextBox As Object 
Dim oListBox As Object 

oListBox = oForm.getByName("simpleListBox") 
oTextBox = oForm.getByName("simpleTextBox").Text 
oListBox.stringitemlist() = Array("One", "Two", "Three") '<--- Only possible way to add items to the ListBox Form Control :(

End Sub

Sub RemoveFromList_ButtonClicked()

Dim oThisDoc As Object 
Dim oForms as Object 
Dim oForm as Object 

oThisDoc = thisComponent.getDrawPage() 
oForms = oThisDoc.getForms() 
oForm = oForms.getByName("SimpleForm") 

Dim oListBox As Object 

oListBox = oForm.getByName("simpleListBox") 

oListBox.stringitemlist() '<--- contains array of items 
oListBox.SelectedItems '<--- contains items selected for removal 

End Sub

Я бы полностью оценить любое решение этой проблемы !.

+0

Похоже, что файл Word - это ваша форма - это правильно? Подключен ли к нему базовый файл? Как вы нашли, содержимое массива listbox неудобно; на самом деле проще работать, если форма связана с базовым файлом, а содержимое списка определяется строкой SQL. Если есть базовое соединение, вероятно, было бы лучше иметь список элементов в таблице Base, пометить их как указано в пользовательском входе формы, затем 'oListBox.refresh', чтобы он отображал обновленный список. Если вы хотите это только в Word - кажется, ваш код работает, что именно возникает? – Lyrl

ответ

0

Это вы что искали?

' Add items. 
oListBox.StringItemList() = Array("One", "Two", "Three") 
oListBox.insertItemText(oListBox.ItemCount, "Four") ' This works even if oListBox starts out empty. 
oListBox.insertItemText(oListBox.ItemCount, "Five") 

' Remove the last item in the list. 
oListBox.removeItem(oListBox.ItemCount - 1) 

XrayTool показывает, что oListBox реализует XItemList.

Форма, которую я использовал для проверки этого кода, была в Writer, без какого-либо подключения к Base.

Смежные вопросы