Top > OOoBasic > Dialog > ListBox

リストボックス Edit

複数の項目からひとつを選ばせるまたは、複数を選ぶことができるリストボックス。

モデル Edit

モデルオブジェクト

共通プロパティ Edit

他のコントロールと共通のプロパティは次のものです。

項目 Edit

プロパティ説明
StringItemList<sequence>stringリストの項目。
MultiSelectionboolean複数選択可能にする。
SelectedItems<sequence>string選択されているリストの項目位置("0" 基準)。
ReadOnlyboolean読み込み専用にする。読み取り専用にすると項目が選択できない。

ドロップダウン Edit

プロパティ説明
Dropdownbooleanドロップダウンを有効にする。有効にするとドロップダウンのボタンが表示されるが、単一行しか項目が表示されない。
LineCountintegerドロップダウン利用時に表示される項目数。

モデルでの操作 Edit

モデルオブジェクトでの操作。コントローラオブジェクトが利用できる場合にはリストの操作はそちらの方が便利です。フォームなどモデルしか利用できない場合に利用します。

フォームでもコントロールのコントローラにアクセスして利用できます。

モデルを介して行なった場合にはイベントが発生しませんが、コントローラを介して行うと、ユーザーが GUI から操作したのと同じようにイベントが発生します。

リストの項目の操作は、基本的に自分で配列を操作することで行います。

全ての項目を取得 Edit

Sub GetItems( oListBox As Object )
  GetItems = oListBox.StringItemList
End Sub

項目数を取得する Edit

項目数を取得します。

Function GetItemCount( oListBox As Object ) As Integer
  n = UBound(oListBox.StringItemList)
  GetItemCount = n + 1
End Function

リストを設定する Edit

リストの項目を変更します。

Sub Btn1_Push( oEv As Object )
 oForm = oEv.Source.Model.Parent
 oListBox = oForm.getByName("ListBox1")
 
 sData = Array("みかん", "りんご", "柿", "西瓜")
 'oListBox.StringItemList = sData
 SetItems( oListBox, sData )
End Sub
Sub SetItems( oListBox As Object, sItems )
  oListBox.StringItemList = sItems
End Sub

項目を追加する Edit

指定位置に項目を追加します。

Sub AddItem( _
   oList As Object, sItem As String, nIndex As Integer )
  
  sItems = oListBox.StringItemList
  InsertItem( sItems, sItem, nIndex )
  
  oList.StringItemList = sItems
End Sub

Sub InsertItem( sItems, sItem As String, nIndex As Integer )
 n = UBound(sItems)
 If nIndex > n Then nIndex = n
 
 ReDim Preserve sItems(n+1)
 
 For i = n+1 To nIndex +1 Step -1
   sItems(i) = sItems(i - 1)
 Next
 
 sItems(nIndex) = sItem
End Sub

複数項目を追加する Edit

複数項目を一度に指定位置に挿入します。

 Sub AddItems( _
   oList As Object, sAddItems As String, nIndex As Integer )
  
  sItems = oListBox.StringItemList
  InsertItems( sItems, sAddItems, nIndex )
  
  oList.StringItemList = sItems
End Sub

Sub InsertItems( sItems, sAddItems, nIndex )
 n = UBound(sItems)
 If nIndex > n Then nIndex = n
 m = UBOund(sAddItems)
 
 ReDim Preserve sItems(n+m +1)
 
 For i = n+m +1 To nIndex +m+1 Step -1
   sItems(i) = sItems(i - m -1)
 Next
 
 For i = 0 To m Step 1
   sItems(nIndex + i) = sAddItems(i)
 Next
End Sub

項目を取得する Edit

指定した位置の項目を取得します。

Function GetItem( oList As Object, nIndex As Integer ) As String
  Dim sItem As String
  sItems = oList.StringItemList
  n = UBound(sItems)
  If nIndex < n Then
    sItem = sItems(nIndex)
  End If
  GetItem = sItem
End Function

選択する Edit

Sub Btn2_Push( oEv As Object )
 oForm = oEv.Source.Model.Parent
 oListBox = oForm.getByName("ListBox1")
 
 sSelected = Array(1,3)
 
 oListBox.SelectedItems = sSelected
End Sub

存在しない項目のインデックスでもエラーが出ません。

Sub SelectItemsPos( oListBox As Object, nSelect )
  oListBox.SelectedItems = nSelect
End Sub

選択中の項目のインデックスを取得 Edit

選択中の項目のインデックスを配列として取得します。

Function SelectedItemsPos( oListBox As Object)
  SelectedItemsPos = oListBox.SelectedItems
End Function

選択中の項目を取得 Edit

選択中の項目を配列として取得します。

Function SelectedItems( oListBox As Object)
  nSelected = oListBox.SelectedItems
  n = UBound(nSelected)
  If n > -1 Then
    Dim sSelectedItems(n) As String
    sItems = oListBox.StringItemList
    For i = 0 to n step 1
      sSelectedItems(i) = sItems( nSelected(i) )
    Next
  Else
    Dim sSelectedItems() As String
  End If
  SelectedItems = sSelectedItems
End Function

コントロール Edit

コントロールオブジェクト

DropDownLineCountshortドロップダウン数
ItemCountshortアイテム数
Items[]stringアイテム
SelectedItemstring選択中アイテム
SelectedItemPosshort選択中アイテム位置
SelectedItems[]string複数選択中アイテム
SelectedItemsPos[]short複数選択中アイテム位置
MultipleModeboolean複数選択モード
  • void addItem ( [in] string aItem, [in] short nPos )
    • 項目を追加する
  • void addItems ( [in] []string aItems, [in] short nPos )
    • 複数の項目を追加する
  • void removeItems( [in] short nPos, [in] short nCount )
    • remoe items
  • string getItem ( [in] short nPos )
    • 項目を取得する
  • short getItemCount ()
    • 項目数を取得する
  • []string getItems ()
    • 全ての項目を取得する
  • string getSelectedItem ()
    • 選択中アイテムを取得する
  • short getSelectedItemPos ()
    • 選択中アイテム位置を取得する
  • []string getSelectedItems ()
    • 複数選択中アイテムを取得する
  • []short getSelectedItemsPos ()
    • 複数選択中アイテム位置を取得する
  • selectItem ( [in] string aItem, [in] boolean bSelect )
    • アイテムを選択する
  • selectItemPos ( [in] short nPos, [in] boolean bSelect )
    • 指定位置のアイテムを選択する
  • selectItemsPos ( [in] []short aPositions, [in] boolean bSelect )
    • 複数のアイテムを選択する
  • void setMultipleMode ( [in] boolean bMulti )
    • 複数選択モードを設定する
  • boolean isMutipleMode ()
    • 複数選択モードかどうか

css.awt.XItemList インターフェース Edit

OOo 3.3 から利用できるモデル用のインターフェースです。モデルから項目の操作がより簡単に行えます。これまではモデルからでは上記の様に配列操作で項目を編集しなければいけませんでしたが、メソッドでより簡単になります。モデルからの操作はリスナーに通知されませんので非常に便利です。

また、リスト中に画像を表示できるようになりました。が、画像入りのものはダイアログエディタでは作成できません。

css.awt.XItemList

  • long ItemCount
    • attribute。リストの項目数。
  • void insertItem( long position, string, itemText, string itemImageURL )
    • 挿入位置と表示テキスト、画像を指定して項目を追加します。
  • void insertItemText( long position, string itemText )
    • 画像なしのテキストだけの項目を追加します。
  • void insertItemImage( long position, string itemImageURL )
    • テキストなしの画像だけの項目を追加します。
  • void removeItem( long position )
    • 指定した項目を削除します。
  • void removeAllItems()
    • 全項目を削除します。
  • void setItemText( long position, string itemText )
    • 既存の項目にテキストを設定します。
  • void setItemImage( long position, string itemImageURL )
    • 既存の項目に画像を設定します。
  • void setItemTextAndImage( long position, string itemText, string itemImageURL )
    • 既存の項目にテキストと画像を設定します。
  • void setItemData( long position, any itemData )
    • なにかデータを設定します。設定できるデータは実装に依存。デフォルトでは利用されない。データ保持に利用できるらしい・・・。
  • string getItemText( long position )
    • 既存の項目のテキストを取得します。
  • string getItemImage( long position )
    • 既存の項目の画像 URL を取得します。
  • css.beans.Pair<string, string> getItemTextAndImage( long position )
    • 既存の項目のテキストと画像を取得します。返り値の First 要素がテキスト、 Second が画像 URL。
  • any getItemData( long position )
    • 既存の項目のデータを取得します。
  • []css.beans.Pair<string, string> getAllItems()
    • 全項目のテキストと画像 URL を取得します。
  • void addItemListListener( XItemListListener listener )
  • void removeItemListListener( XItemListListener listener )

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes