/// <summary>コントロール取得&イベントハンドラ設定(下位互換)</summary> /// <param name="ctrl">コントロール</param> /// <param name="prefix">プレフィックス</param> /// <param name="eventHandler">イベント ハンドラ</param> /// <param name="controlHt">コントロールのディクショナリ</param> internal static void GetCtrlAndSetClickEventHandler(Control ctrl, string prefix, object eventHandler, Dictionary <string, Control> controlHt) { #region チェック処理 // コントロール指定が無い場合 if (ctrl == null) { // 何もしないで戻る。 return; } // プレフィックス指定が無い場合 if (prefix == null || prefix == "") { // 何もしないで戻る。 return; } #endregion #region コントロール取得&イベントハンドラ設定 // コントロールのNameチェック if (ctrl.Name == null) { // コントロールName無し } else { // コントロールName有り // コントロールのName長確認 if (prefix.Length <= ctrl.Name.Length) { // 指定のプレフィックス if (prefix == ctrl.Name.Substring(0, prefix.Length)) { // イベントハンドラを設定する。 if (prefix == GetConfigParameter.GetConfigValue(FxLiteral.PREFIX_OF_BUTTON)) { // BUTTON Button button = RcFxCmnFunction.CastByAsOperator <Button>(ctrl, prefix); // ハンドラをキャストして設定 button.Click += (EventHandler)eventHandler; // ディクショナリに格納 // ControlHt.Add(ctrl.Name, ctrl); controlHt[ctrl.Name] = ctrl; // 2009/08/10-この行 } else if (prefix == GetConfigParameter.GetConfigValue(FxLiteral.PREFIX_OF_PICTURE_BOX)) { // PICTURE BOX PictureBox pictureBox = RcFxCmnFunction.CastByAsOperator <PictureBox>(ctrl, prefix); // ハンドラをキャストして設定 pictureBox.Click += (EventHandler)eventHandler; // ディクショナリに格納 // ControlHt.Add(ctrl.Name, ctrl); controlHt[ctrl.Name] = ctrl; // 2009/08/10-この行 } else if (prefix == GetConfigParameter.GetConfigValue(FxLiteral.PREFIX_OF_COMBO_BOX)) { // COMBO BOX ComboBox comboBox = RcFxCmnFunction.CastByAsOperator <ComboBox>(ctrl, prefix); // ハンドラをキャストして設定 comboBox.SelectedIndexChanged += (EventHandler)eventHandler; // ディクショナリに格納 // ControlHt.Add(ctrl.Name, ctrl); controlHt[ctrl.Name] = ctrl; // 2009/08/10-この行 } else if (prefix == GetConfigParameter.GetConfigValue(FxLiteral.PREFIX_OF_LIST_BOX)) { // LIST BOX ListBox listBox = RcFxCmnFunction.CastByAsOperator <ListBox>(ctrl, prefix); // ハンドラをキャストして設定 listBox.SelectedIndexChanged += (EventHandler)eventHandler; // ディクショナリに格納 // ControlHt.Add(ctrl.Name, ctrl); controlHt[ctrl.Name] = ctrl; // 2009/08/10-この行 } else if (prefix == GetConfigParameter.GetConfigValue(FxLiteral.PREFIX_OF_RADIO_BUTTON)) { // RADIO BUTTON RadioButton radioButton = RcFxCmnFunction.CastByAsOperator <RadioButton>(ctrl, prefix); // ハンドラをキャストして設定 radioButton.CheckedChanged += (EventHandler)eventHandler; // ディクショナリに格納 // ControlHt.Add(ctrl.Name, ctrl); controlHt[ctrl.Name] = ctrl; // 2009/08/10-この行 } } } } #endregion #region 再起 // 子コントロールがある場合、 if (ctrl.Controls.Count != 0) { // 子コントロール毎に foreach (Control childCtrl in ctrl.Controls) { // 再起する。 RcFxCmnFunction.GetCtrlAndSetClickEventHandler(childCtrl, prefix, eventHandler, controlHt); } } #endregion }
/// <summary>コントロール取得&イベントハンドラ設定(下位互換)</summary> /// <param name="ctrl">コントロール</param> /// <param name="prefix">プレフィックス</param> /// <param name="eventHandler">イベント ハンドラ</param> /// <param name="controlHt">コントロールのディクショナリ</param> internal static void GetCtrlAndSetClickEventHandler(Control ctrl, string prefix, object eventHandler, Dictionary <string, Control> controlHt) { #region チェック処理 // コントロール指定が無い場合 if (ctrl == null) { // 何もしないで戻る。 return; } // プレフィックス指定が無い場合 if (prefix == null || prefix == "") { // 何もしないで戻る。 return; } #endregion #region コントロール取得&イベントハンドラ設定 // コントロールのNameチェック if (ctrl.Name == null) { // コントロールName無し } else { // コントロールName有り // コントロールのName長確認 if (prefix.Length <= ctrl.Name.Length) { // 指定のプレフィックス if (prefix == ctrl.Name.Substring(0, prefix.Length)) { // イベントハンドラを設定する。 if (prefix == GetConfigParameter.GetConfigValue(FxLiteral.PREFIX_OF_BUTTON)) { // BUTTON Button button = null; try { // キャストできる button = (Button)ctrl; } catch (Exception ex) { // キャストできない throw new FrameworkException( FrameworkExceptionMessage.CONTROL_TYPE_ERROR[0], String.Format(FrameworkExceptionMessage.CONTROL_TYPE_ERROR[1], prefix, ctrl.GetType().ToString()), ex); } button.Click += (EventHandler)eventHandler; // ディクショナリに格納 // ControlHt.Add(ctrl.Name, ctrl); controlHt[ctrl.Name] = ctrl; // 2009/08/10-この行 } else if (prefix == GetConfigParameter.GetConfigValue(FxLiteral.PREFIX_OF_PICTURE_BOX)) { // PICTURE BOX PictureBox pictureBox = null; try { // キャストできる pictureBox = (PictureBox)ctrl; } catch (Exception ex) { // キャストできない throw new FrameworkException( FrameworkExceptionMessage.CONTROL_TYPE_ERROR[0], String.Format(FrameworkExceptionMessage.CONTROL_TYPE_ERROR[1], prefix, ctrl.GetType().ToString()), ex); } pictureBox.Click += (EventHandler)eventHandler; // ディクショナリに格納 // ControlHt.Add(ctrl.Name, ctrl); controlHt[ctrl.Name] = ctrl; // 2009/08/10-この行 } else if (prefix == GetConfigParameter.GetConfigValue(FxLiteral.PREFIX_OF_COMBO_BOX)) { // COMBO BOX ComboBox comboBox = null; try { // キャストできる comboBox = (ComboBox)ctrl; } catch (Exception ex) { // キャストできない throw new FrameworkException( FrameworkExceptionMessage.CONTROL_TYPE_ERROR[0], String.Format(FrameworkExceptionMessage.CONTROL_TYPE_ERROR[1], prefix, ctrl.GetType().ToString()), ex); } comboBox.SelectedIndexChanged += (EventHandler)eventHandler; // ディクショナリに格納 // ControlHt.Add(ctrl.Name, ctrl); controlHt[ctrl.Name] = ctrl; // 2009/08/10-この行 } else if (prefix == GetConfigParameter.GetConfigValue(FxLiteral.PREFIX_OF_LIST_BOX)) { // LIST BOX ListBox listBox = null; try { // キャストできる listBox = (ListBox)ctrl; } catch (Exception ex) { // キャストできない throw new FrameworkException( FrameworkExceptionMessage.CONTROL_TYPE_ERROR[0], String.Format(FrameworkExceptionMessage.CONTROL_TYPE_ERROR[1], prefix, ctrl.GetType().ToString()), ex); } listBox.SelectedIndexChanged += (EventHandler)eventHandler; // ディクショナリに格納 // ControlHt.Add(ctrl.Name, ctrl); controlHt[ctrl.Name] = ctrl; // 2009/08/10-この行 } else if (prefix == GetConfigParameter.GetConfigValue(FxLiteral.PREFIX_OF_RADIO_BUTTON)) { // RADIO BUTTON RadioButton radioButton = null; try { // キャストできる radioButton = (RadioButton)ctrl; } catch (Exception ex) { // キャストできない throw new FrameworkException( FrameworkExceptionMessage.CONTROL_TYPE_ERROR[0], String.Format(FrameworkExceptionMessage.CONTROL_TYPE_ERROR[1], prefix, ctrl.GetType().ToString()), ex); } radioButton.CheckedChanged += (EventHandler)eventHandler; // ディクショナリに格納 // ControlHt.Add(ctrl.Name, ctrl); controlHt[ctrl.Name] = ctrl; // 2009/08/10-この行 } } } } #endregion #region 再起 // 子コントロールがある場合、 if (ctrl.Controls.Count != 0) { // 子コントロール毎に foreach (Control childCtrl in ctrl.Controls) { // 再起する。 RcFxCmnFunction.GetCtrlAndSetClickEventHandler(childCtrl, prefix, eventHandler, controlHt); } } #endregion }