Beispiel #1
0
        //────────────────────────────────────────
        #endregion



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

        /// <summary>
        /// テキストが変更されたというイベント・ハンドラー。
        ///
        /// このイベント・ハンドラーは、このカスタム コントロールに必ず登録されます。
        /// </summary>
        /// <param nFcName="sender"></param>
        /// <param nFcName="e"></param>
        private void this_TextChanged(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_TextChanged", log_Reports_ThisMethod);
            //
            //

            string sName_Usercontrol = this.ControlCommon.Expression_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports_ThisMethod);

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

            CustomcontrolNumericUpDown ccNumericUpDown = (CustomcontrolNumericUpDown)sender;

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

                MessageBox.Show(
                    "ユーザーによって直接入力されました。this.ControlCommon.Name=[" + sName_Usercontrol + "]",
                    "▲デバッグ(" + Info_Controls.Name_Library + ")" + this.GetType().Name + "#this_TextChanged:");

                this.UsercontrolToMemory(
                    log_Reports_ThisMethod
                    );
            }


            //
            //
            //
            //
            pg_Method.EndMethod(log_Reports_ThisMethod);
            log_Reports_ThisMethod.EndLogging(pg_Method);
        }
Beispiel #2
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", 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_Nulltarget;
            }
            else
            {
                // データターゲットが設定されているとき

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

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

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

                string  sValueText   = ccNumericUpDown.Text;
                decimal valueDecimal = ccNumericUpDown.Value;

                ToMemory_Performer nDataTargetUpdater = new ExpressionDataTargetUpdaterImpl();

                nDataTargetUpdater.ToMemory(
                    sValueText,
                    this.ControlCommon.Expression_Control,
                    this.ControlCommon.Owner_MemoryApplication,
                    log_Reports
                    );

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

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

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