cAlgo API リファレンス

RadioButton【cAlgoAPI】

選択肢から一つ選ぶ

いくつかある選択肢から一つだけ選んでもらいたいときに使うやつ。チェックボックス同様に起動中のパラメータ変更に使えそうですね。

チェックボックスで選択肢を並べると、1つも選ばなかったり2つ選んだりできてしまいますが、ラジオボタンを使えば中から一つだけ選んでもらうということができます。

 

RadioButtonクラス

public class RadioButton : Control

例によってControlから継承されてます。

 

プロパティ
(string) Text {get; set;}

ラジオボタン横に表示するテキストを取得、設定します。

(bool) IsChecked {get; set;}

ラジオボタンのチェック状態を取得、設定します。

(string) GroupName {get; set;}

ラジオボタンのグループ名を指定します。同じグループ名のボタンのうち一つだけにチェックがつけられるようになります。

(ControlBase) Content {get; set;}

ラジオボタンのテキスト部分に表示させるコントロールを取得、設定します。Textより優先します。

ControlBase, Controlのプロパティ

表示位置、サイズ、色などの基本設定はこっちです。

 

イベント

マウスクリックでチェックされた場合はClickとChecked両方のイベントが起きます。

チェックが切り替わる際は、すでにチェックされてた方のUncheckedと新たにチェックされた方のChecked両方のイベントが起きます。

Click

クリックされた。

Checked

チェックされた

Unchecked

チェックが外された

 

 

サンプルコード
var radioJPY = new RadioButton {
    Text = "JPY",
    GroupName = "currency_select",
    BackgroundColor = Color.White,
    ForegroundColor = Color.Red,
    IsChecked = false,
};
var radioEUR = new RadioButton {
    Text = "EUR",
    GroupName = "currency_select",
    BackgroundColor = Color.Blue,
    ForegroundColor = Color.Yellow,
    IsChecked = false,
};
radioJPY.Click += (args => Print("JPY pushed!"));
radioJPY.Checked += (args => Print("JPY checked"));
radioJPY.Unchecked += (args => Print("JPY unchecked"));
radioEUR.Click += (args => Print("EUR pushed!"));
radioEUR.Checked += (args => Print("EUR checked"));
radioEUR.Unchecked += (args => Print("EUR unchecked"));
var panel = new StackPanel {
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Center,
};
panel.AddChild(radioJPY);
panel.AddChild(radioEUR);
Chart.AddControl(panel);

同じグループ内のIsCheckedをすべてfalseにしておくと、全くチェックがない状態を初期状態にはできますが、逆にすべてtrueはできません。(最後にtrueにしたボタンが選択された状態になる)

なお、ラジオボタンもチェックボックス同様、BackgroundColorはチェックする部分の背景色です。

 

 

RadioButtonEventArgsクラス

上記イベント発生時にコールバックされるメソッドの引数です。上記サンプルコード内ならラムダ式内のargsがこの型です。(使ってませんけど)

public class RadioButtonEventArgs : Object

 

プロパティ
(RadioButton) RadioButton

イベントが発生したチェックボックスを取得します。

 

-cAlgo API リファレンス

© 2021 cTrader's Life Powered by AFFINGER5