トグルボタンコントロール

<< Click to Display Table of Contents >>

マニュアル > コントロールリファレンス > 基本 >

トグルボタンコントロール


トグルボタンコントロール (ToggleButton)

 

 

トグルボタンコントロールは、TRUE/FALSE(On/Off)の状態が交互に切り替わるボタンです。

 

cr_0035

 

トグルボタンコントロールは、2つの用途があります。

 

1)1つのボタン操作によって、TRUE/FALSE(On/Off)の状態を交互に切り替えたい場合。

2)トグルボタンコントロールをグルーピングする事により、1つの操作に対して複数のトグルボタンを組として連動させることができます。

   この方法は、オペレータによる画面操作の際、複数の選択肢の中から常に1つだけ選択させたいような場面で役立ちます。

 

 

各ボタンそれぞれでON/OFFの状態を切り替える

 

トグルボタンコントロールはSwitchTypeがALTERNATEのボタンコントロールと同じようにON/OFFの状態を交互に切り替えることができます。

 

cr_0036

 

各ボタンのSwitchValueに、ON/OFFを切り替えたい各ビットタグをバインドします。

各ボタンはそれぞれに独立して動作します。

 

Motor1のSwitchValueのバインド : INOUT:$M0

Motor7のSwitchValueのバインド : INOUT:$M7

 

 

 

ボタンをグルーピングして複数の選択肢から1つだけ選択させる

 

複数のボタンをグルーピングすることにより、複数の選択肢の中から1つだけ選択させたい場面に利用することができます。

 

このサンプルは\\sample\control\controls.xmlのToggleButtonフォームの「Grouped buttons for a number tag」にあります。サンプルでは、Stop/Motor1/…/Motor7のトグルボタンがグループ化されています。

 

1)この状態では、Motor2が選択されています。

cr_0037

 

2)オペレータがMoter3を選択するとMoter2のボタンは解除され、Moter3がON(押された状態)になります。

cr_0038

 

グルーピングの手順は以下のとおりです。

 

1)グループとして組にしたい各コントロールのNameプロパティに、それぞれコントロールの名前を付けてください。

 

2)このグループの中から「親」となるコントロールを決めます。親はグルーピングするコントロールの中からどれか1つ選びます。

 

3)親コントロールのGroupObjectプロパティに、グルーピングを行いたいコントロールの名前をカンマ区切で設定します。この時、親自身のコントロール名を含める必要はありません。

例)GroupObject プロパティ : Motor1,Motor2,Motor3,Motor4,Motor5,Motor6,Motor7

 

4)グルーピングする各コントロールのGroupThisValueプロパティの設定を行います。GroupThisValueは組の中でどのボタンが押された状態なのかを識別するための値です。従って、各コントロールで重複しない値を設定します。

例)

StopボタンのGroupThisValueプロパティ : 0

Motor1ボタンのGroupThisValueプロパティ : 1

Motor7ボタンのGroupThisValueプロパティ : 7

 

5)親コントロールのGroupValueプロパティに、スイッチの切り替えを通知したいタグをバインドします。

 

このバインドによって、スイッチ操作に応じてタグの値を切り替えることができます(例えば0,1,2…)。

このプロパティは、グループ内のどれかのボタンが押された時に、各ボタンに割り付けられたGroupThisValueプロパティの設定値により値がリアルタイムに変化します。

この例では、Motor2が押された時は、親コントロールのGroupValueは2になります。Motor5が押された時は、GroupValueは5になります。

なお、GroupValueプロパティは読み取り専用のため、バインドタブのみに表示されます。又、GroupValueが変化すると、OnGroupValueChangedイベントが発生します。

 

 

グルーピングにより複数のビットタグの中から一つだけONにする

 

複数のボタンをグルーピングし、複数のビットタグの中から1つだけONにすることができます。ONになっているビットタグ以外のタグは全てOFFになります。

 

例えば、3つのボタン(BitTag1/BitTag2/BitTag3)を用意し、前ページの「ボタンをグルーピングして複数の選択肢から1つだけ選択させる」の手順でグループ化します。

異なる点は手順(5)で、親のGroupValueプロパティにバインドするのではなく、トグルボタンコントロールのSwitchValueにバインドしている点です。

SwitchValueはボタンコントロールと同じで、ボタンが押されている状態の時TRUE、押されていない時FALSEになります。

 

cr_0039

 

 

1つのビットタグの状態を2つのボタンで切り替える

 

2つのボタンをグループ化することにより、ビットタグのON/OFFを切り替えることもできます。

設定手順は前ページの「グループ化して複数の選択肢から1つだけ選択する」と同じです。

 

cr_0040

 

 

バインドを行わない時のGroupValueの初期値について

 

バインドを行わずにグループ化するとき、GroupValueの初期値は-1になります。

初期値を-1以外の値にしたい場合には、親コントロールのOnInitializeイベントで以下のように記述してください。

 

hmtoggle_plus1