示例#1
0
        /// <summary>親UserControlを検索</summary>
        /// <param name="sender">object</param>
        /// <returns>親UserControl</returns>
        public static UserControl FindParentWinUserControl(object sender)
        {
            if ((sender as Control) != null)
            {
                Control ctrl = sender as Control;

                if ((ctrl as UserControl) != null)
                {
                    // UserControlを発見
                    return((UserControl)ctrl);
                }
                else if (ctrl.Parent != null)
                {
                    // 再帰(親を辿る
                    return(RcFxCmnFunction.FindParentWinUserControl(ctrl.Parent));
                }
                else
                {
                    // ルートに到達
                    return(null);
                }
            }
            else
            {
                // Controlでない。
                return(null);
            }
        }
示例#2
0
        /// <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
        }
示例#3
0
        /// <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
        }