/// <summary>コントロール取得&イベントハンドラ設定</summary> /// <param name="ctrl">コントロール</param> /// <param name="prefixAndEvtHndHt">プレフィックスとイベント ハンドラのディクショナリ</param> /// <param name="controlHt">コントロールのディクショナリ</param> internal static void GetCtrlAndSetClickEventHandler2(Control ctrl, Dictionary <string, object> prefixAndEvtHndHt, Dictionary <string, Control> controlHt) { // ループ foreach (string prefix in prefixAndEvtHndHt.Keys) { object eventHandler = prefixAndEvtHndHt[prefix]; #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(MyLiteral.PREFIX_OF_CHECK_BOX)) { // CHECK BOX CheckBox checkBox = RcFxCmnFunction.CastByAsOperator <CheckBox>(ctrl, prefix); // ハンドラをキャストして設定 checkBox.CheckedChanged += (EventHandler)eventHandler; // ディクショナリに格納 controlHt[ctrl.Name] = ctrl; break; } } } } #endregion } #region 再起 // 子コントロールがある場合、 if (ctrl.Controls.Count != 0) { // 子コントロール毎に foreach (Control childCtrl in ctrl.Controls) { // 再起する。 RcMyCmnFunction.GetCtrlAndSetClickEventHandler2(childCtrl, prefixAndEvtHndHt, controlHt); } } #endregion }
/// <summary>コントロール取得&イベントハンドラ設定</summary> /// <param name="ctrl">コントロール</param> /// <param name="prefixAndEvtHndHt">プレフィックスとイベント ハンドラのディクショナリ</param> /// <param name="controlHt">コントロールのディクショナリ</param> internal static void GetCtrlAndSetClickEventHandler2(Control ctrl, Dictionary <string, object> prefixAndEvtHndHt, Dictionary <string, Control> controlHt) { // ループ foreach (string prefix in prefixAndEvtHndHt.Keys) { object eventHandler = prefixAndEvtHndHt[prefix]; #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(MyLiteral.PREFIX_OF_CHECK_BOX)) { // CHECK BOX CheckBox checkBox = null; if (ctrl is CheckBox) { // キャストできる checkBox = (CheckBox)ctrl; } else { // キャストできない throw new FrameworkException( FrameworkExceptionMessage.CONTROL_TYPE_ERROR[0], String.Format(FrameworkExceptionMessage.CONTROL_TYPE_ERROR[1], prefix, ctrl.GetType().ToString())); } checkBox.CheckedChanged += (EventHandler)eventHandler; // ディクショナリに格納 controlHt[ctrl.Name] = ctrl; break; } } } } #endregion } #region 再起 // 子コントロールがある場合、 if (ctrl.Controls.Count != 0) { // 子コントロール毎に foreach (Control childCtrl in ctrl.Controls) { // 再起する。 RcMyCmnFunction.GetCtrlAndSetClickEventHandler2(childCtrl, prefixAndEvtHndHt, controlHt); } } #endregion }