Beispiel #1
0
        //────────────────────────────────────────
        /// <summary>
        /// コンストラクター。
        /// </summary>
        public UsercontrolCheckbox()
        {
            // ヌル・アクセス防止のため
            this.customcontrolCheckbox1 = new CustomcontrolCheckbox();
            this.memoryButton1 = new MemoryButtonImpl();

            InitializeComponent();
        }
Beispiel #2
0
        //────────────────────────────────────────
        #endregion



        #region イベントハンドラー
        //────────────────────────────────────────

        /// <summary>
        /// チェックが変更されたというイベント・ハンドラー。
        ///
        /// このイベント・ハンドラーは、HCheckBoxに必ず登録されます。
        /// </summary>
        /// <param nFcName="sender"></param>
        /// <param nFcName="e"></param>
        private void this_CheckChanged(object sender, EventArgs e)
        {
            Log_Method  pg_Method = new Log_MethodImpl(0);
            Log_Reports log_Reports_ThisMethod = new Log_ReportsImpl(pg_Method);

            pg_Method.BeginMethod(Info_Controls.Name_Library, this, "this_CheckChanged", log_Reports_ThisMethod);
            //
            //

            //bug:Expression_Name_Controlがnull→コンストラクタでダミーを入れた
            string sName_Usercontrol = this.ControlCommon.Expression_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports_ThisMethod);

            log_Reports_ThisMethod.Comment_EventCreationMe = "[" + sName_Usercontrol + "]コントロール(チェックボックス)のチェックが変更されました。";



            CustomcontrolCheckbox ccCheckBox = (CustomcontrolCheckbox)sender;

            if (this.ControlCommon.BAutomaticinputting)
            {
                // コンピューターにより自動入力されたとき。
                //essageBox.Show("コンピュータによって自動入力されました。 コントロールID=[" + this.FormObjectId + "]", "▲デバッグ");
            }
            else
            {
                // 手入力による更新。
                //essageBox.Show(
                //"ユーザーによって直接入力されました。hNumericUpDown=[" + hNumericUpDown + "] コントロールID=["+this.FormObjectId+"]",
                //"▲デバッグ(" + Info_Forms .LibraryName+ ")"+this.GetType().NFcName+"#this_CheckChanged:");

                this.UsercontrolToMemory(
                    log_Reports_ThisMethod
                    );
            }



            //
            //
            pg_Method.EndMethod(log_Reports_ThisMethod);
            log_Reports_ThisMethod.EndLogging(pg_Method);
        }
Beispiel #3
0
        //────────────────────────────────────────

        /// <summary>
        /// データ・ターゲットへの出力を行います。
        ///
        /// イベント・ハンドラー以外でも、直接、データターゲットへの出力を行うことができます。
        /// </summary>
        public void UsercontrolToMemory(
            Log_Reports log_Reports
            )
        {
            Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static);

            pg_Method.BeginMethod(Info_Controls.Name_Library, this, "UsercontrolToMemory(10)", log_Reports);
            //
            //

            if (null == this.ControlCommon.Expression_Control)
            {
                // このコントロールに対応づくテーブル等の設定がなく、ただの空箱の場合。
                // Visual Studio のビジュアルエディターで直接置いただけの時は、ここに来ます。

                // 何もせず終了。
                goto gt_EndMethod;
            }


            List <Expression_Node_String> ecList_Data       = this.ControlCommon.Expression_Control.SelectDirectchildByNodename(NamesNode.S_DATA, false, EnumHitcount.Unconstraint, log_Reports);
            List <Expression_Node_String> ecList_DataTarget = Utility_Expression_NodeImpl.SelectItemsByPmAsCsv(ecList_Data, PmNames.S_ACCESS.Name_Pm, ValuesAttr.S_TO, false, EnumHitcount.First_Exist, log_Reports);

            if (!log_Reports.Successful)
            {
                goto gt_EndMethod;
            }
            Expression_Node_String ec_DataTarget = ecList_DataTarget[0];


            if (null == ec_DataTarget)
            {
                // エラー:     データターゲットが未設定のとき
                goto gt_Error_NullDatatarget;
            }
            else
            {
                // データターゲットが設定されているとき

                CustomcontrolCheckbox ccCheckBox = this;//イベントハンドラーのsender引数と一致すること。

                // TODO 数値型テキストボックスで空白を出力しようとしたときにエラーになるのはバグなので修正したい。

                // 特にトリムは行いません。

                switch (this.enumCheckboxValuetype)
                {
                case EnumCheckboxValuetype.Bool:
                {
                    ToMemory_Performer nDataTargetUpdater = new ExpressionDataTargetUpdaterImpl();

                    nDataTargetUpdater.ToMemory(
                        ccCheckBox.Checked.ToString(),
                        this.ControlCommon.Expression_Control,
                        this.ControlCommon.Owner_MemoryApplication,
                        log_Reports
                        );
                }
                break;

                case EnumCheckboxValuetype.Zero_One:
                {
                    int nCheckedInt;
                    if (ccCheckBox.Checked)
                    {
                        nCheckedInt = 1;
                    }
                    else
                    {
                        nCheckedInt = 0;
                    }

                    ToMemory_Performer nDataTargetUpdater = new ExpressionDataTargetUpdaterImpl();

                    nDataTargetUpdater.ToMemory(
                        nCheckedInt.ToString(),
                        this.ControlCommon.Expression_Control,
                        this.ControlCommon.Owner_MemoryApplication,
                        log_Reports
                        );
                }
                break;

                default:
                {
                    Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl();
                    tmpl.SetParameter(1, this.enumCheckboxValuetype.ToString(), log_Reports);       //未定義のEnum値。

                    this.ControlCommon.Owner_MemoryApplication.CreateErrorReport("Er:506;", tmpl, log_Reports);
                }
                break;
                }


                if (log_Reports.Successful)
                {
                    // 成功時
                    ccCheckBox.BackColor = System.Drawing.SystemColors.Window;
                }
                else
                {
                    // 設定失敗時。
                    ccCheckBox.BackColor = Color.Yellow;
                }
            }

            goto gt_EndMethod;
            //
            //
            #region 異常系
            //────────────────────────────────────────
gt_Error_NullDatatarget:
            {
                Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl();
                tmpl.SetParameter(1, this.Name, log_Reports);//コントロール名

                this.ControlCommon.Owner_MemoryApplication.CreateErrorReport("Er:502;", tmpl, log_Reports);
            }
            goto gt_EndMethod;
            //────────────────────────────────────────
            #endregion
            //
            //
gt_EndMethod:
            pg_Method.EndMethod(log_Reports);
        }