Top > OOoBasic > Dialog > OptionButton
*オプションボタン [#kc1370ce]

複数の選択肢のうちの一つを選択させるためによく使われるコントロールです。

#contents

**プロパティ [#q9d5dd6f]
他のコントロールと共通のプロパティは次のものです。
-[[一般プロパティ>../Common]]
-[[フォント設定>../Font]]
-[[画像>../Others#e3425e2e]]
-[[複数行>../Others#g50657f2]]
-[[文字の配置>../Others#ofb4d3c0]]
-[[スタイル>../Others#ob175f6c]]
***状態 [#ceeaeaec]
|プロパティ|型|説明|
|''State''|integer|チェック状態。チェックされていない: 0、チェック状態: 1|

**モデルでの操作 [#ue02a868]
モデルでオプションボタンを操作するときに陥りやすいのは、モデルの State プロパティとコントローラで利用できる State プロパティ (偽プロパティである) の値の違いです。

モデル State: integer
コントローラ State: boolean

この場合、値の型を間違うと正しく設定されませんので注意が必要です。
**グループ化 [#y1dd3d04]

同じグループにあるオプションボタンは、グループ内でひとつしか選択できないようになります。

複数のオプションボタンをグループ化するには、「タブの順序」を連続するように設定します。ひとつでもタブの順序が開いているオプションボタンは別のグループになります。オプションボタンのグループを複数作成する必要があるときには、グループ間の「タブの順序」をオプションボタン以外のコントロールに割り当てます。

グループボックスで囲ってもグループ化されません。

***フォーム上でのグループ化 [#l0d38b62]
フォーム上に配置したオプションボタンはタブの順序ではグループ化できません。その代わりにグループ化したいオプションボタンに同じ名前を付けます。

同じ名前を付けると XNameContainer で区別できなくなるため、最初に見つかったコントロールが取得されるようになってしまいます。その代わりに同名グループとして取得します。これには &idlref(com.sun.star.awt.XTabControllerModel); インターフェースを利用します。

 Sub optionbutton_10
  oDoc = ThisComponent
  oForm = oDoc.getDrawPage().getForms().getByIndex(0)
  oControls = Array()
  oForm.getGroupByName("OptionButton1",oControls)
  
  sValue = ""
  
  For i = 0 To UBound(oControls) step 1
    If oControls(i).State = 1 Then
      sValue = oControls(i).RefValue
      Exit For
    End If
  Next
  
  Select Case sValue
  Case "On"
    msgbox "on"
  Case "Off"
    msgbox "off"
  End Select
 End Sub
**コントローラ [#xb6a9968]

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

-[[一般>OOoBasic/Dialog/Controller_Common]]

|Label|string|ラベル|
|State|boolean|状態|
|ActionCommand|string|コマンド|

-void setLabel	( [in] string Label )
--ラベルを設定する
-string getLabel	()
--ラベルを取得する
-boolean getState	()
--状態を取得する
-void setState	( [in] boolean b )
--状態を設定する
-void setActionCommand	( [in] string Command )
--コマンドの設定

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