/// <summary> /// 各コントロールの初期化を行う /// </summary> /// <param name="settingInfo"> /// 音声認識に対するマッチングパターンと操作の設定情報 /// </param> public void Initialize(SpeechRecognitionSettingInfo settingInfo) { // 引数の音声認識に対するマッチングパターンと操作の設定情報を保持する // NULLが指定された場合は初期値を設定する CurrentSpeechRecognitionSettingInfo = settingInfo; SettingInfo = settingInfo ?? new SpeechRecognitionSettingInfo(); SpeechRecognitionSettingInfo info = SettingInfo.DeepCopy(); // マッチングメッセージのテキストボックスを設定 if (!string.IsNullOrEmpty(info.MatchMessage)) { TxtMatchMessage.Text = info.MatchMessage; IsSetMatchMessage = true; } else { // マッチングメッセージが存在しない場合はデフォルトの値を設定する TxtMatchMessage.Text = DefaultMatchMessage; IsSetMatchMessage = false; } // マッチングメッセージの文字色を初期化 SetMatchMessageForeColor(IsSetMatchMessage); // マッチングパターンのラジオボタン領域は非表示 PlMatchPattern.Visible = false; // 設定情報のマッジングパターンに紐づくラジオボタンコントロールを取得 RadioButton radio = GetRadio(info.MatchPattern); // ラジオボタンコントロールが取得できた場合はそのラジオボタンをチェックする if (radio != null) { radio.Checked = true; } else if ((radio = GetCheckedRadio()) != null) { // チェック対象のラジオボタンが存在しない場合は、 // チェックされているラジオボタンのチェックを外し、すべてが未チェック状態にする radio.Checked = false; } // 拡大縮小ボタンの初期化 IsSummary = true; SetBackgroundImageForBtMinMax(IsSummary); // 概要ラベルを設定 SetSummaryText(info); LbSummaryText.Visible = true; // 操作設定用のコントロールを設定 // (非表示にするためコントロールオブジェクトを解放する) if (SettingControl != null) { PlControl.Controls.Remove(SettingControl); SettingControl.Dispose(); SettingControl = null; } }
/// <summary> /// 拡大縮小表示の切り替えボタン押下のイベント /// </summary> /// <param name="sender">センダーオブジェクト</param> /// <param name="e">イベントデータ</param> private void BtMinMax_Click(object sender, EventArgs e) { // 概要表示フラグを切り替える IsSummary = !IsSummary; // マッチングパターンのラジオボタン領域の表示を切り替える PlMatchPattern.Visible = !IsSummary; // 拡大縮小ボタンの表示を切り替える SetBackgroundImageForBtMinMax(IsSummary); // 操作設定エリアの表示を切り替える if (IsSummary) { // 縮小の場合 // 概要ラベルを表示する LbSummaryText.Visible = true; SetSummaryText(SettingInfo); // 操作設定用のコントロールを設定 // (非表示にするためコントロールオブジェクトを解放する) if (SettingControl != null) { PlControl.Controls.Remove(SettingControl); SettingControl.Dispose(); SettingControl = null; } } else { // 拡大の場合 // 操作設定用のコントロールを取得する SettingControl?.Dispose(); SettingControl = SettingInfo.SettingControl; if (SettingControl != null) { // 操作設定用のコントロールが存在する場合 // 概要ラベルを設定 LbSummaryText.Visible = false; // 設定変更イベントを設定 (SettingControl as ISpeechRecognitionSettingControl).SettingDataChanged += new EventHandler(SettingControl_SettingDataChanged); // 操作設定用のコントロールを設定 PlControl.Controls.Add(SettingControl); } else { // 操作設定用のコントロールが存在しない場合 // 概要ラベルを表示する LbSummaryText.Visible = true; SetSummaryText(SettingInfo); } } }