//──────────────────────────────────────── /// <summary> /// 子コントロールを追加します。 /// </summary> /// <param nFcName="uct"></param> public void AppendChild( Usercontrol uct, Log_Reports log_Reports ) { Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); pg_Method.BeginMethod(Info_Controls.Name_Library, this, "AppendChild", log_Reports); // // if (log_Reports.Successful) { foreach (Customcontrol cct in uct.List_Customcontrol) { // // タブ ペーンに追加できるのは、タブ ページだけです。 // // // タブ ペーン"tbp" 直下にあるタブ ページ"tbg" だけが、タブ ペーンに追加できます。 // if (cct is CustomcontrolTabPage) { CustomcontrolTabPage ccTabPage = (CustomcontrolTabPage)cct; // // このユーザーコントロールは タブペーンではなく、 // タブペーンを持っているユーザーコントロールなので、 // 持っているタブペーン(カスタム コントロール)に、子要素を追加します。 // // // ユーザーコントロール(UC)はタブページではないので追加できないので、 // タブページをextendsしているカスタムコントロール(CC)を追加します。 // this.customcontrolTabControl1.TabPages.Add(ccTabPage); } else { goto gt_Error_AnotherChildType; } } } goto gt_EndMethod; // // #region 異常系 //──────────────────────────────────────── gt_Error_AnotherChildType: { Builder_TexttemplateP1p tmpl = new Builder_TexttemplateP1pImpl(); tmpl.SetParameter(1, this.ControlCommon.Expression_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports), log_Reports); //タブペーン・コントロール名 tmpl.SetParameter(2, uct.ControlCommon.Expression_Name_Control.Execute4_OnExpressionString(EnumHitcount.Unconstraint, log_Reports), log_Reports); //追加しようとしたコントロール名 this.ControlCommon.Owner_MemoryApplication.CreateErrorReport("Er:524;", tmpl, log_Reports); } goto gt_EndMethod; //──────────────────────────────────────── #endregion // // gt_EndMethod: pg_Method.EndMethod(log_Reports); }
//──────────────────────────────────────── /// <summary> /// データ・ターゲットへの出力を行います。 /// /// イベント・ハンドラー以外でも、直接、データターゲットへの出力を行うことができます。 /// </summary> public void UsercontrolToMemory( Log_Reports log_Reports ) { Log_Method pg_Method = new Log_MethodImpl(); 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_NullDatatarget; } else { // データターゲットが設定されているとき CustomcontrolTabPage ccTabPage = this;//イベントハンドラーのsender引数と一致すること。 // TODO 数値型テキストボックスで空白を出力しようとしたときにエラーになるのはバグなので修正したい。 // 特にトリムは行いません。 ToMemory_Performer nDataTargetUpdater = new ExpressionDataTargetUpdaterImpl(); nDataTargetUpdater.ToMemory( ccTabPage.Text, this.ControlCommon.Expression_Control, this.ControlCommon.Owner_MemoryApplication, log_Reports ); if (log_Reports.Successful) { // 成功時 ccTabPage.BackColor = System.Drawing.SystemColors.Window; } else { // 設定失敗時。 ccTabPage.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:512;", tmpl, log_Reports); } goto gt_EndMethod; //──────────────────────────────────────── #endregion // // gt_EndMethod: pg_Method.EndMethod(log_Reports); }