Как программно добавлять или удалять элементы в элементе управления ListBox FORM

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

Подпрограмма 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 :(

Конец сабвуфера

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

Конец сабвуфера

Я был бы очень признателен за любое решение этой проблемы!


person zapper    schedule 12.11.2015    source источник
comment
Похоже, что файл Word - это ваша форма - это правильно? Есть ли какой-либо базовый файл, связанный с ним? Как вы заметили, содержимое массива списка неуклюже; на самом деле проще работать, если форма подключена к базовому файлу, а содержимое списка определяется строкой SQL. Если есть соединение с базой, вероятно, было бы лучше иметь список элементов в базовой таблице, пометить их, как указано в форме, введенной пользователем, а затем oListBox.refresh, чтобы показать обновленный список. Если вы хотите это только в Ворде - вроде ваш код работает, в чем именно вопрос?   -  person Lyrl    schedule 12.11.2015


Ответы (1)


Это то, что вы ищите?

' 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.

person Jim K    schedule 13.11.2015