//──────────────────────────────────────── /// <summary> /// 全てのフォームの、レイアウトの一時停止を解除。 /// </summary> private void ResumeLayout( TableUserformconfig fo_Config, MemoryApplication memoryApplication, Log_Reports pg_Logging ) { Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "ResumeLayout", pg_Logging); // // foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig) { string sName_Control; fo_Record.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", memoryApplication, pg_Logging); // // S → E。 コントロール名 Expression_Node_StringImpl ec_FcName = new Expression_Node_StringImpl(null, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree); ec_FcName.AppendTextNode( sName_Control, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree, pg_Logging ); List <Usercontrol> list_FcUc; if (pg_Logging.Successful) { list_FcUc = memoryApplication.MemoryForms.GetUsercontrolsByName( ec_FcName, true, pg_Logging ); } else { list_FcUc = new List <Usercontrol>(); } if (pg_Logging.Successful) { Usercontrol uct = list_FcUc[0]; if (uct is UsercontrolWindow) { UsercontrolWindow uctWnd = (UsercontrolWindow)uct; uctWnd.CustomcontrolWindow1.ResumeLayout(false); } } } // // // // pg_Method.EndMethod(pg_Logging); }
//──────────────────────────────────────── /// <summary> /// コンストラクター。 /// </summary> /// <param name="olParent"></param> public RecordUserformconfigImpl(TableUserformconfig parent_TableUserformconfig) { this.dictionary_Field = new Dictionary <string, FieldUserformtable>(); this.parent_TableUserformconfig = parent_TableUserformconfig; this.no = -1; this.name = ""; this.tabindex = -1; this.IsEnabled = true;//活性化 this.tree = 1; this.itemDisplayFormat = ""; this.CheckboxValuetype = ""; this.newline = ""; }
//──────────────────────────────────────── /// <summary> /// コンストラクター。 /// </summary> /// <param name="olParent"></param> public RecordUserformconfigImpl(TableUserformconfig parent_TableUserformconfig) { this.dictionary_Field = new Dictionary<string, FieldUserformtable>(); this.parent_TableUserformconfig = parent_TableUserformconfig; this.no = -1; this.name = ""; this.tabindex = -1; this.IsEnabled = true;//活性化 this.tree = 1; this.itemDisplayFormat = ""; this.CheckboxValuetype = ""; this.newline = ""; }
//──────────────────────────────────────── /// <summary> /// 『レイアウト設定ファイル』を読取ります。 /// </summary> public void LoadUserformconfigFile( TableUserformconfig fo_Config_Formgroup, Table_Humaninput o_Table_Form, MemoryApplication memoryApplication, Log_Reports pg_Logging ) { Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "LoadUserformconfigFile",pg_Logging); // // // // データ・タイプです。 string sTypeData; if (pg_Logging.Successful) { if (null != o_Table_Form.Typedata) { sTypeData = o_Table_Form.Typedata; } else { sTypeData = ""; } } else { sTypeData = ""; } if (pg_Logging.Successful) { // TREEフィールドの有無チェック if ( ValuesTypeData.S_TABLE_FORM == sTypeData && !o_Table_Form.DataTable.Columns.Contains(NamesFld.S_TREE)) { // // エラー goto gt_Error_NotFoundTreeField; } } string sFoundName; string sFoundNameRef; if (pg_Logging.Successful) { // NAMEフィールドの存在する有無 bool bExistsName = o_Table_Form.DataTable.Columns.Contains("NAME"); // NAME_REFフィールドの存在する有無 bool bExistsNameRef = o_Table_Form.DataTable.Columns.Contains("NAME_REF"); // NAME、NAME_REFフィールドが同時に存在する有無 bool bExistsDoubleNames = bExistsName && bExistsNameRef; // // コントロールのプロパティー設定を読取。 // foreach (DataRow dataRow in o_Table_Form.DataTable.Rows) { RecordUserformconfig fo_Record = null; bool bRecordNew = false; // // ・NAMEとNAME_REFフィールドの両方に記述があればエラー。 // ・NAMEフィールドがあり、コントロール名が記述されていれば、レコードを新規作成。 // ・NAME_REFフィールドがあり、コントロール名が記述されていれば、既存レコードを編集。 // if (bExistsNameRef) { string sFieldName = "NAME_REF"; pg_Logging.Log_Callstack.Push(pg_Method, "①"); String_HumaninputImpl.TryParse( dataRow[sFieldName],// この連想配列は大文字・小文字を区別しないのが欠点。 out sFoundNameRef, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "①"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } } else { sFoundNameRef = ""; } if (bExistsName) { string sFieldName = "NAME"; if (dataRow[sFieldName] is DBNull) { // // NAMEフィールドが空欄ならレコードを無視。 continue; } pg_Logging.Log_Callstack.Push(pg_Method, "②"); String_HumaninputImpl.TryParse( dataRow[sFieldName], out sFoundName, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "②"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } } else { sFoundName = ""; } if (bExistsDoubleNames && "" != sFoundName && "" != sFoundNameRef) { // エラー goto gt_Error_DoubleNames; } if (bExistsName && "" != sFoundName) { fo_Record = new RecordUserformconfigImpl(fo_Config_Formgroup); bRecordNew = true; } if (bExistsNameRef && "" != sFoundNameRef) { foreach (RecordUserformconfig fo_Record2 in fo_Config_Formgroup.List_RecordUserformconfig) { string sName_Control; fo_Record2.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", memoryApplication, pg_Logging); if (sName_Control == sFoundNameRef) { fo_Record = fo_Record2; break; } } } if (null == fo_Record) { continue; } if (pg_Logging.Successful) { // // レイアウト・テーブル一覧。 // またはレイアウト・テーブル。 // または未指定。 // if ( ValuesTypeData.S_TABLES_FORM == sTypeData || ValuesTypeData.S_TABLE_FORM == sTypeData || "" == sTypeData) { int nResult = this.Read_Form( fo_Record, dataRow, o_Table_Form, fo_Config_Formgroup, memoryApplication, pg_Logging ); if (2 == nResult) { // 追加せず中断する。 continue; } } } if (pg_Logging.Successful) { // // レイアウト・テーブル(リスト) // if (ValuesTypeData.S_TABLE_FORM_LST == sTypeData) { int nResult = this.Read_FormLst( true, fo_Record, dataRow, o_Table_Form, pg_Logging ); if (2 == nResult) { // 編集せず中断する。 continue; } } } if (pg_Logging.Successful) { // 正常時。 if (bRecordNew) { fo_Config_Formgroup.List_RecordUserformconfig.Add(fo_Record); } } }//各行 } else { //config_formGroup = null; } goto gt_EndMethod; // // #region 異常系 //──────────────────────────────────────── gt_Error_NotFoundTreeField: // テーブルタイプが「Form」で、"TREE" フィールドがないとき。 // (Form_lstタイプには、TREEフィールドは要らない) if (pg_Logging.CanCreateReport) { Log_RecordReports r = pg_Logging.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー91026!", pg_Method); Log_TextIndented s = new Log_TextIndentedImpl(); s.Append("指定のテーブル["); s.Append(o_Table_Form.Name); s.Append("に、"); s.Newline(); s.Append("TREEフィールドが見つかりませんでした。TREEフィールドは必要です。"); s.Newline(); s.Newline(); s.Newline(); // // 問題箇所ヒント // s.Append(" BaseDirectory=["); s.Append(o_Table_Form.Expression_Filepath_ConfigStack.Directory_Base); s.Append("]"); s.Newline(); s.Newline(); s.Append(" HumanInputText=["); s.Append(o_Table_Form.Expression_Filepath_ConfigStack.Humaninput); s.Append("]"); s.Newline(); s.Newline(); // ヒント s.Append(r.Message_Configuration(o_Table_Form)); r.Message = s.ToString(); pg_Logging.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── gt_Error_DoubleNames: // NAMEフィールドと、NAME_REFフィールドの両方に記述があれば。 // (両方に記述してはいけない) if (pg_Logging.CanCreateReport) { Log_RecordReports r = pg_Logging.BeginCreateReport(EnumReport.Error); r.SetTitle("▲エラー901!", pg_Method); Log_TextIndented t = new Log_TextIndentedImpl(); t.Append("指定のテーブル["); t.Append(o_Table_Form.Name); t.Append("の中に、"); t.Newline(); t.Append("NAMEとNAME_REFフィールドの両方に記述があるものがありました。"); t.Newline(); t.Append("両方同時に記述してはいけません。"); t.Newline(); t.Newline(); t.Newline(); t.Append("NAME=["); t.Append(sFoundName); t.Append("]"); t.Newline(); t.Append("NAME_REF=["); t.Append(sFoundNameRef); t.Append("]"); t.Newline(); t.Newline(); t.Newline(); // // 問題箇所ヒント // t.Append(" BaseDirectory=["); t.Append(o_Table_Form.Expression_Filepath_ConfigStack.Directory_Base); t.Append("]"); t.Newline(); t.Newline(); t.Append(" HumanInputText=["); t.Append(o_Table_Form.Expression_Filepath_ConfigStack.Humaninput); t.Append("]"); t.Newline(); t.Newline(); // ヒント t.Append(r.Message_Configuration(o_Table_Form)); r.Message = t.ToString(); pg_Logging.EndCreateReport(); } goto gt_EndMethod; //──────────────────────────────────────── #endregion // // gt_EndMethod: pg_Method.EndMethod(pg_Logging); }
//──────────────────────────────────────── /// <summary> /// 「レイアウト_テーブル」のテーブルタイプが「Form」専用。 /// </summary> /// <param name="fo_Record"></param> /// <param name="dataRow"></param> /// <param name="o_Table_Form"></param> /// <param name="ol_Config2"></param> /// <param name="pg_Logging"></param> /// <returns>0:正常終了、2:continue。</returns> private int Read_Form( RecordUserformconfig fo_Record, DataRow dataRow, Table_Humaninput o_Table_Form, TableUserformconfig fo_Config, MemoryApplication memoryApplication, Log_Reports pg_Logging ) { Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "Read_Layout",pg_Logging); // // int nResult = 0; int nIntValue;// = 0; string sValue;// = ""; bool bValue;// = false; // // TREE (特殊判定) // { //必須フィールドです。 string sFieldName = NamesFld.S_TREE; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { //フィールド有り if (dataRow[sFieldName] is DBNull)// この連想配列は大文字・小文字を区別しないのが欠点。 { // フィールドは有るが、未記入の時。 // TREEフィールドが未記入の場合は、空行と判断して、無視します。 nResult = 2; goto gt_EndMethod; } //フィールドが有り、記入もあるとき。 pg_Logging.Log_Callstack.Push(pg_Method, "③"); bool bParsedSuccessful = Int_HumaninputImpl.TryParse( dataRow[sFieldName], out nIntValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 「値が空(-1)」は、空行としてよく使います。 -1, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "③"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_TREE, EnumTypedb.Int, nIntValue, pg_Logging); //fo_Record.NTree = nIntValue; } else { // エラー時 } } } // // NO // { //必須フィールドではありません。 string sFieldName = NamesFld.S_NO; bool bContained = o_Table_Form.ContainsField(sFieldName, false, pg_Logging); if (pg_Logging.Successful) { if (bContained) { pg_Logging.Log_Callstack.Push(pg_Method, "④"); bool bParsedSuccessful = Int_HumaninputImpl.TryParse( dataRow[sFieldName], out nIntValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。 -1, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "④"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_NO, EnumTypedb.Int, nIntValue, pg_Logging); //fo_Record.NNo = nIntValue; } else { fo_Record.Set(NamesFld.S_NO, EnumTypedb.Int, 0, pg_Logging); //fo_Record.NNo = 0; } } else { fo_Record.Set(NamesFld.S_NO, EnumTypedb.Int, 0, pg_Logging); //fo_Record.NNo = 0; } } } // // NAME // { //必須フィールドです。 string sFieldName = NamesFld.S_NAME; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑤"); bool bBool = String_HumaninputImpl.TryParse( dataRow[sFieldName], out sValue, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging); pg_Logging.Log_Callstack.Pop(pg_Method, "⑤"); if (bBool) { // コントロール名。 fo_Record.Set( NamesFld.S_NAME, EnumTypedb.String, sValue, pg_Logging); //fo_Record.Name = sValue; } else { // // NAME がエラー? // // コントロール名。 fo_Record.Set(NamesFld.S_NAME, EnumTypedb.String, "<エラー>", pg_Logging); //fo_Record.Name = "<エラー>"; } if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } } } // // int型のTREEフィールドが-1の場合は、空行と判断します。 // int nCurTree; fo_Record.TryGetInt(out nCurTree, NamesFld.S_TREE, true, -1, memoryApplication, pg_Logging); if (-1 == nCurTree) { nResult = 2; goto gt_EndMethod; } // // TYPE // { //必須フィールドです。 string sFieldName = NamesFld.S_TYPE; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑦"); bool bBool = String_HumaninputImpl.TryParse( dataRow[sFieldName], out sValue, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging); pg_Logging.Log_Callstack.Pop(pg_Method, "⑦"); if (bBool) { fo_Record.Set(NamesFld.S_TYPE, EnumTypedb.String, sValue, pg_Logging); //fo_Record.SType = sValue; } else { fo_Record.Set(NamesFld.S_TYPE, EnumTypedb.String, "", pg_Logging); //fo_Record.SType = ""; } if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } } } // // TEXT // { //必須フィールドです。 string sFieldName = NamesFld.S_TEXT; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑧"); bool bBool = String_HumaninputImpl.TryParse( dataRow[sFieldName], out sValue, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging); pg_Logging.Log_Callstack.Pop(pg_Method, "⑧"); if (bBool) { fo_Record.Set(NamesFld.S_TEXT, EnumTypedb.String, sValue, pg_Logging); //fo_Record.SText = sValue; } else { fo_Record.Set(NamesFld.S_TEXT, EnumTypedb.String, "", pg_Logging); //fo_Record.SText = ""; } if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } } } // // FILE // { //必須フィールドです。 string sFieldName = NamesFld.S_FILE; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑨"); bool bBool = String_HumaninputImpl.TryParse( dataRow[sFieldName], out sValue, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging); pg_Logging.Log_Callstack.Pop(pg_Method, "⑨"); if (bBool) { Configurationtree_NodeFilepath cf_Fpath_Control = new Configurationtree_NodeFilepathImpl("ファイルパス出典未指定L10_1", o_Table_Form); cf_Fpath_Control.InitPath(sValue, pg_Logging); if (pg_Logging.Successful) { fo_Record.Set(NamesFld.S_FILE, EnumTypedb.ConfFilepath, cf_Fpath_Control, pg_Logging); //fo_Record.Cf_File = cf_Fpath_Control; } } else { Configurationtree_NodeFilepath cf_Fpath_Control = new Configurationtree_NodeFilepathImpl("ファイルパス出典未指定L10_2", o_Table_Form); cf_Fpath_Control.InitPath("", pg_Logging); if (pg_Logging.Successful) { fo_Record.Set(NamesFld.S_FILE, EnumTypedb.ConfFilepath, cf_Fpath_Control, pg_Logging); //fo_Record.Cf_File = cf_Fpath; } } if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } } } // // ENABLED // { //必須フィールドです。 string sFieldName = NamesFld.S_ENABLED; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑩"); bool bParseSuccessful = Bool_HumaninputImpl.TryParse( dataRow[sFieldName], out bValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。 false, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "⑩"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParseSuccessful) { fo_Record.Set( NamesFld.S_ENABLED, EnumTypedb.Bool, bValue, pg_Logging); //fo_Record.BEnabled = bValue; } else { fo_Record.Set(NamesFld.S_ENABLED, EnumTypedb.Bool, false, pg_Logging); //fo_Record.BEnabled = false; } } } // // VISIBLE // { //必須フィールドではありません。 string sFieldName = NamesFld.S_VISIBLE; bool bContained = o_Table_Form.ContainsField(sFieldName, false, pg_Logging); if (bContained) { pg_Logging.Log_Callstack.Push(pg_Method, "⑪"); bool bParsedSuccessful = Bool_HumaninputImpl.TryParse( dataRow[sFieldName], out bValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。 false, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "⑪"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_VISIBLE, EnumTypedb.Bool, bValue, pg_Logging); //fo_Record.BVisible = bValue; } else { fo_Record.Set(NamesFld.S_VISIBLE, EnumTypedb.Bool, false, pg_Logging); //fo_Record.BVisible = false; } } else { // // VISIBLEフィールドがない場合、常に可視とします。 // fo_Record.Set(NamesFld.S_VISIBLE, EnumTypedb.Bool, true, pg_Logging); //fo_Record.BVisible = true; } } // // READ_ONLY // { //必須フィールドです。 string sFieldName = NamesFld.S_READ_ONLY; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑫"); bool bParsedSuccessful = Bool_HumaninputImpl.TryParse( dataRow[sFieldName], out bValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。 false, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "⑫"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_READ_ONLY, EnumTypedb.Bool, bValue, pg_Logging); //fo_Record.BReadOnly = bValue; } else { fo_Record.Set(NamesFld.S_READ_ONLY, EnumTypedb.Bool, false, pg_Logging); //fo_Record.BReadOnly = false; } } } // // WORD_WRAP // { //必須フィールドです。 string sFieldName = NamesFld.S_WORD_WRAP; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑬"); bool bParsedSuccessful = Bool_HumaninputImpl.TryParse( dataRow[sFieldName], out bValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。 false, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "⑬"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_WORD_WRAP, EnumTypedb.Bool, bValue, pg_Logging); //fo_Record.BWordWrap = bValue; } else { fo_Record.Set(NamesFld.S_WORD_WRAP, EnumTypedb.Bool, false, pg_Logging); //fo_Record.BWordWrap = false; } } } // // NEW_LINE // { //必須フィールドではありません。 string sFieldName = NamesFld.S_NEW_LINE; bool bContained = o_Table_Form.ContainsField(sFieldName, false, pg_Logging); if (bContained) { pg_Logging.Log_Callstack.Push(pg_Method, "⑭"); bool bBool = String_HumaninputImpl.TryParse( dataRow[sFieldName], out sValue, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging); pg_Logging.Log_Callstack.Pop(pg_Method, "⑭"); if (bBool) { fo_Record.Set(NamesFld.S_NEW_LINE, EnumTypedb.String, sValue, pg_Logging); //fo_Record.SNewLine = sValue; } else { fo_Record.Set(NamesFld.S_NEW_LINE, EnumTypedb.String, "", pg_Logging); //fo_Record.SNewLine = ""; } if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } } else { // // VISIBLEフィールドがない場合、指定なしとします。 // fo_Record.Set(NamesFld.S_NEW_LINE, EnumTypedb.String, "", pg_Logging); //fo_Record.SNewLine = ""; } } // // SCROLL_BARS // { //必須フィールドです。 string sFieldName = NamesFld.S_SCROLL_BARS; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑮"); bool bBool = String_HumaninputImpl.TryParse( dataRow[sFieldName], out sValue, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging); pg_Logging.Log_Callstack.Pop(pg_Method, "⑮"); if (bBool) { fo_Record.Set(NamesFld.S_SCROLL_BARS, EnumTypedb.String, sValue, pg_Logging); //fo_Record.SScrollBars = sValue; } else { fo_Record.Set(NamesFld.S_SCROLL_BARS, EnumTypedb.String, "", pg_Logging); //fo_Record.SScrollBars = ""; } if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } } } // // CHK_VALUE_TYPE // { //必須フィールドです。 string sFieldName = NamesFld.S_CHK_VALUE_TYPE; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑯"); bool bBool = String_HumaninputImpl.TryParse( dataRow[sFieldName], out sValue, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging); pg_Logging.Log_Callstack.Pop(pg_Method, "⑯"); if (bBool) { fo_Record.Set(NamesFld.S_CHK_VALUE_TYPE, EnumTypedb.String, sValue, pg_Logging); //fo_Record.SChkValueType = sValue; } else { fo_Record.Set(NamesFld.S_CHK_VALUE_TYPE, EnumTypedb.String, "", pg_Logging); //fo_Record.SChkValueType = ""; } if (!pg_Logging.Successful) { goto gt_EndMethod; } } } // // FONT_SIZE_PT // { //必須フィールドです。 string sFieldName = NamesFld.S_FONT_SIZE_PT; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑰"); bool bBool = String_HumaninputImpl.TryParse( dataRow[sFieldName], out sValue, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging); pg_Logging.Log_Callstack.Pop(pg_Method, "⑰"); if (bBool) { fo_Record.Set(NamesFld.S_FONT_SIZE_PT, EnumTypedb.String, sValue, pg_Logging); //fo_Record.SFontSizePt = sValue; } else { fo_Record.Set(NamesFld.S_FONT_SIZE_PT, EnumTypedb.String, "", pg_Logging); //fo_Record.SFontSizePt = ""; } if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } } } // // PIC_ZOOM // { //必須フィールドではありません。 string sFieldName = NamesFld.S_PIC_ZOOM; bool bContained = o_Table_Form.ContainsField(sFieldName, false, pg_Logging); if (bContained) { pg_Logging.Log_Callstack.Push(pg_Method, "⑱"); bool bParsedSuccessful = Int_HumaninputImpl.TryParse( dataRow[sFieldName], out nIntValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。 1000,// 等倍サイズ。千分率なので1000。 pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "⑱"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_PIC_ZOOM, EnumTypedb.Int, nIntValue, pg_Logging); //fo_Record.NPicZoom = nIntValue; } } else { // // フィールドが無かった場合。 // fo_Record.Set(NamesFld.S_PIC_ZOOM, EnumTypedb.Int, 1000, pg_Logging); //fo_Record.NPicZoom = 1000;// 等倍サイズ。千分率なので1000。 } } // // X_LT // { //必須フィールドです。 string sFieldName = NamesFld.S_X_LT; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑲"); bool bParsedSuccessful = Int_HumaninputImpl.TryParse( dataRow[sFieldName], out nIntValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。 -1, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "⑲"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_X_LT, EnumTypedb.Int, nIntValue, pg_Logging); //fo_Record.NAbsXLt = nIntValue; } } } // // Y_LT // { //必須フィールドです。 string sFieldName = NamesFld.S_Y_LT; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "⑳"); bool bParsedSuccessful = Int_HumaninputImpl.TryParse( dataRow[sFieldName], out nIntValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。 -1, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "⑳"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_Y_LT, EnumTypedb.Int, nIntValue, pg_Logging); //fo_Record.NAbsYLt = nIntValue; } } } // // WIDTH // { //必須フィールドです。 string sFieldName = NamesFld.S_WIDTH; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "(21)"); bool bParsedSuccessful = Int_HumaninputImpl.TryParse( dataRow[sFieldName], out nIntValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。 -1, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "(21)"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_WIDTH, EnumTypedb.Int, nIntValue, pg_Logging); //fo_Record.NWidth = nIntValue; } } } // // HEIGHT // { //必須フィールドです。 string sFieldName = NamesFld.S_HEIGHT; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "(22)"); bool bParsedSuccessful = Int_HumaninputImpl.TryParse( dataRow[sFieldName], out nIntValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value, // 空行追加時のエラー抑制のため。 -1, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "(22)"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_HEIGHT, EnumTypedb.Int, nIntValue, pg_Logging); //fo_Record.NHeight = nIntValue; } } } // // TAB_INDEX // { //必須フィールドです。 string sFieldName = NamesFld.S_TAB_INDEX; // フィールドが無ければ、その時点でエラー。 o_Table_Form.ContainsField(sFieldName, true, pg_Logging); if (pg_Logging.Successful) { pg_Logging.Log_Callstack.Push(pg_Method, "(23)"); bool bParsedSuccessful = Int_HumaninputImpl.TryParse( dataRow[sFieldName], out nIntValue, EnumOperationIfErrorvalue.Spaces_To_Alt_Value,//大したデータではないので、省略すると-1にする。 -1, pg_Logging ); pg_Logging.Log_Callstack.Pop(pg_Method, "(23)"); if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } if (bParsedSuccessful) { fo_Record.Set(NamesFld.S_TAB_INDEX, EnumTypedb.Int, nIntValue, pg_Logging); //fo_Record.NTabIndex = nIntValue; } } } // // BACK_COLOR // { //必須フィールドではありません。 string sFieldName = NamesFld.S_BACK_COLOR; bool bContained = o_Table_Form.ContainsField(sFieldName, false, pg_Logging); if (bContained) { pg_Logging.Log_Callstack.Push(pg_Method, "(24)"); bool bBool = String_HumaninputImpl.TryParse( dataRow[sFieldName], out sValue, o_Table_Form.Name, sFieldName, pg_Method, pg_Logging); pg_Logging.Log_Callstack.Pop(pg_Method, "(24)"); if (bBool) { fo_Record.Set(NamesFld.S_BACK_COLOR, EnumTypedb.String, sValue, pg_Logging); //fo_Record.SBackColor = sValue; } else { fo_Record.Set(NamesFld.S_BACK_COLOR, EnumTypedb.String, "", pg_Logging); //fo_Record.SBackColor = ""; } if (!pg_Logging.Successful) { // エラー goto gt_EndMethod; } } else { fo_Record.Set(NamesFld.S_BACK_COLOR, EnumTypedb.String, "", pg_Logging); //fo_Record.SBackColor = ""; } } this.Read_FormLst( false, fo_Record, dataRow, o_Table_Form, pg_Logging ); // // // // gt_EndMethod: pg_Method.EndMethod(pg_Logging); return nResult; }
/// <summary> /// コントロールのスタイルを設定します。 /// </summary> /// <param name="fo_Config"></param> /// <param name="oFolderPath_forms"></param> /// <param name="form"></param> /// <param name="log_Reports"></param> /// <returns></returns> public void P3_ApplyStyleToUsercontrol( TableUserformconfig fo_Config, Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "P3_ApplyStyleToFc",log_Reports); // // // // コントロールのスタイルを設定。 if (log_Reports.Successful) { // 正常時 // コントロール連想配列作成後。 // (旧・データ・ソースと、データ・ターゲットを設定した後で) this.Owner_MemoryApplication.MemoryForms.UsercontrolStyleSetter.SetupStyle( fo_Config, this.Owner_MemoryApplication, log_Reports ); } // // // // log_Method.EndMethod(log_Reports); }
/// <summary> /// コントロールのスタイルを設定します。 /// </summary> /// <param name="fo_Config"></param> /// <param name="oFolderPath_forms"></param> /// <param name="form"></param> /// <param name="log_Reports"></param> /// <returns></returns> public void P2_CreateForm( TableUserformconfig fo_Config, Form form, Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "P2_CreateForm",log_Reports); // // // // コントロールを動的に追加。 if (log_Reports.Successful) { // 正常時 // (プロパティーの設定はまだ行いません。) this.CreateForm( fo_Config, form, log_Reports ); } // // // // log_Method.EndMethod(log_Reports); }
/// <summary> /// コントロールのスタイルを設定します。 /// </summary> /// <param name="fo_Config"></param> /// <param name="oFolderPath_forms"></param> /// <param name="form"></param> /// <param name="log_Reports"></param> /// <returns></returns> public void P1_XToMemory_Userformconfig( TableUserformconfig fo_Config, Table_Humaninput o_Table_Form, Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "P1_XToMemory_Userformconfig", log_Reports); // // if (log_Reports.Successful) { // 正常時 this.xToMemory_Form.LoadUserformconfigFile( fo_Config, o_Table_Form, this.Owner_MemoryApplication, log_Reports ); } else { //config_form = null; } // // // // log_Method.EndMethod(log_Reports); }
/// <summary> /// 『レイアウト設定ファイル』をもとに、コントロールを作成し、 /// フォームと、アプリケーション・モデルにコントロールを動的に追加します。 /// </summary> /// <param name="fo_Config"></param> /// <param name="form"></param> protected void CreateForm( TableUserformconfig fo_Config, Form form, Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "CreateForm",log_Reports); // // //this.form_noren = form; // レイアウトするロジックを一時停止。(メインフォーム) form.SuspendLayout(); // フォームにステータスバーを付けます。(デバッグモードでのみ) TODO:1回限りであること。 if (null == statusStrip1 && Log_ReportsImpl.BDebugmode_Static) { statusStrip1 = new System.Windows.Forms.StatusStrip(); // // statusStrip1 // statusStrip1.Location = new System.Drawing.Point(0, 244); statusStrip1.Name = "statusStrip1"; statusStrip1.Size = new System.Drawing.Size(292, 22); statusStrip1.TabIndex = 0; statusStrip1.Text = "statusStrip1"; this.statusStripLabel2 = new System.Windows.Forms.ToolStripStatusLabel(); this.statusStripLabel2.Name = "toolStripStatusLabel1"; this.statusStripLabel2.Size = new System.Drawing.Size(114, 17); this.statusStripLabel2.Text = "toolStripStatusLabel1"; this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.statusStripLabel2}); form.Controls.Add(statusStrip1); // #情報 if (log_Method.CanInfo()) { log_Method.WriteInfo_ToConsole("ステータスバーをフォームに追加した。(デバッグモードでのみ)TODO:1回限りであること。"); } } //// フォームに「マルチロール_テキストボックス」を付けます。 TODO:1回限りであること。 //if (null == this.multiroleTextBox) //{ // this.multiroleTextBox = new System.Windows.Forms.TextBox(); // this.multiroleTextBox.Multiline = true; // form.Controls.Add(this.multiroleTextBox); // // #デバッグ // ystem.Console.WriteLine(Info_NorenImpl.LibraryName + ":MoNorenImpl#CreateForm:マルチロール_テキストボックスをフォームに追加した。TODO:1回限りであること。"); //} // 1つ前のコントロールが入っている仕組み。 List<Usercontrol> list_StackFc = new List<Usercontrol>(); List<int> nList_StackTree = new List<int>(); // // レコードの並び順は、記述されている順番とします。 // foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig) { int nCurTree; fo_Record.TryGetInt(out nCurTree, NamesFld.S_TREE, true, -1, this.Owner_MemoryApplication, log_Reports); // // // ここで、コントロール(UserControl)を作成。 // 作成できなかった、または作成しなかった場合はヌル。 // // Usercontrol uct = ucontrolCreator1.Create( fo_Record, true, this.Owner_MemoryApplication, log_Reports ); //.WriteLine(this.GetType().Name + "#CreateForm: (10) この要素=[" + fcUc.ControlCommon.Name + "] curTree=[" + curTree + "]"); if (log_Reports.Successful) { if (null != uct) { string sName_Control; fo_Record.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", this.Owner_MemoryApplication, log_Reports); Expression_Node_StringImpl ec_Str = new Expression_Node_StringImpl(null, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree); ec_Str.AppendTextNode( sName_Control, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree, log_Reports ); // // // コントロール名の登録。 // // this.Owner_MemoryApplication.MemoryForms.PutUsercontrol( ec_Str, uct, log_Reports ); if (uct is UsercontrolWindow) { // // 「ウィンドウ」(別窓)を開けたい場合。 // UsercontrolWindow uctWnd = (UsercontrolWindow)uct; //ucWindow.SetupStatusStrip(); uctWnd.CustomcontrolWindow1.Show(); //.WriteLine(this.GetType().Name + "#CreateForm: (20) 【ウィンドウ追加】トップに、この要素=[" + fcUc.ControlCommon.Name + "]を追加。"); } else { if (0 == nList_StackTree.Count) { // // ★追加: メインフォームのトップに、この要素を追加 // form.Controls.Add((Control)uct); // 普通、メインウィンドウもここになる。 } else { int nPrevTree = nList_StackTree.Last(); if (nPrevTree == nCurTree) { // 1つ前の要素と ツリー値が同じなら、 // 1つ前の要素をスタックから削除し、 list_StackFc.RemoveAt(list_StackFc.Count - 1); nList_StackTree.RemoveAt(nList_StackTree.Count - 1); if (0 != nList_StackTree.Count) { nPrevTree = nList_StackTree.Last(); // // ★追加: 前の要素(スタックの最後の要素)に、この要素を追加。 // Usercontrol prevUc = list_StackFc.Last(); prevUc.AppendChild( uct, log_Reports ); //.WriteLine(this.GetType().Name + "#CreateForm: (40) 【前の要素に、この要素を追加】 前の要素=[" + prevUc.ControlCommon.Name + "]に、この要素=[" + fcUc.ControlCommon.Name + "]を追加。"); } else { nPrevTree = 0; // // ★追加: メインフォームのトップに、この要素を追加 // form.Controls.Add((Control)uct); //.WriteLine(this.GetType().Name + "#CreateForm: (50) 【メインフォームのトップ要素として追加2】 メインフォームのトップに、この要素=[" + fcUc.ControlCommon.Name + "]を追加。"); } } else if (nPrevTree < nCurTree) { // 1つ前の要素より、大きなtree値を持つなら、 // // ★追加: 1つ前の要素に、この要素を追加。 // Usercontrol prevUc = list_StackFc.Last(); prevUc.AppendChild( uct, log_Reports ); //.WriteLine(this.GetType().Name + "#CreateForm: (60) 【前の要素に、この要素を追加】 前の要素=[" + prevUc.ControlCommon.Name + "]に、この要素=[" + fcUc.ControlCommon.Name + "]を追加。"); } else { // 1つ前の要素より、小さなtree値を持つなら、 // // ★削除: // 自分より小さなtree値を持つ要素が出てくるまで、 // 前の要素を消す。 // list_StackFc.RemoveAt(list_StackFc.Count - 1); nList_StackTree.RemoveAt(nList_StackTree.Count - 1); //.WriteLine(this.GetType().Name + "#CreateForm: (70) 【前要素削除】 この要素=[" + fcUc.ControlCommon.Name + "]"); // // foreachループの中で、リストの要素数が変わると、 // foreachループは失敗する。 // // whileループを使うことにする。 // while (0 < nList_StackTree.Count) { Usercontrol prevUc = list_StackFc.Last(); nPrevTree = nList_StackTree.Last(); if (nCurTree <= nPrevTree) { list_StackFc.RemoveAt(list_StackFc.Count - 1); nList_StackTree.RemoveAt(nList_StackTree.Count - 1); //.WriteLine(this.GetType().Name + "#CreateForm: (80) 【前要素削除】 この要素=[" + fcUc.ControlCommon.Name + "] 前の要素=[" + prevUc.ControlCommon.Name + "]"); } else { break; } } if (0 == nList_StackTree.Count) { // 空っぽになったらループを止める。 // エラー? nPrevTree = -1; } else { nPrevTree = nList_StackTree.Last(); } if (0 == nList_StackTree.Count) { // // ★追加: メインフォームのトップに、この要素を追加 // form.Controls.Add((Control)uct); //.WriteLine(this.GetType().Name + "#CreateForm: (90) 【メインフォームのトップ要素として追加3】 メインフォームのトップに、この要素=[" + fcUc.ControlCommon.Name + "]を追加。"); } else { // // ★追加: 1つ前の要素に、この要素を追加。 // Usercontrol prevUc = list_StackFc.Last(); prevUc.AppendChild( uct, log_Reports ); //.WriteLine(this.GetType().Name + "#CreateForm: (100) 【前の要素に、この要素を追加】 前の要素=[" + prevUc.ControlCommon.Name + "]に、この要素=[" + fcUc.ControlCommon.Name + "]を追加。"); } } } } } } list_StackFc.Add(uct); nList_StackTree.Add(nCurTree); } // レイアウトの一時停止を解除。レイアウト実行の強制はしない。(メインフォーム) form.ResumeLayout(false); // // // // log_Method.EndMethod(log_Reports); }
/// <summary> /// コントロールに、データソース、データターゲットを設定していきます。 /// /// 『レイアウト設定ファイル』に記述されている、 /// FILE列 で示された『コンポーネント設定ファイル』を読み取っていきます。 /// /// /// 備考:「モンスター・レギオン・エディター」で使用中。 /// </summary> public void SetupUsercontrolconfigs( TableUserformconfig fo_Config, Expression_Node_Filepath ec_Fopath_Forms, Log_Reports log_Reports ) { Log_Method log_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); log_Method.BeginMethod(Info_MiddleImpl.Name_Library, this, "SetupFcnfs",log_Reports); // if (log_Reports.Successful) { // 正常時 // // コントロールのプロパティー設定ファイルに記述されている、 // FILE列 で示されたコンポーネント設定ファイルをもとに、 // コントロールにデータ・ソースと、データ・ターゲットを動的に追加します。 // foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig) { Configurationtree_NodeFilepath cf_Fpath_Control; fo_Record.TryGetFilepath_Configurationtree(out cf_Fpath_Control, NamesFld.S_FILE, false, this.Owner_MemoryApplication, log_Reports); Expression_Node_Filepath e_Fpath_Usercontrol = new Expression_Node_FilepathImpl(cf_Fpath_Control); this.Owner_MemoryApplication.MemoryForms.LoadFile( fo_Record, ec_Fopath_Forms, log_Reports ); } } //.WriteLine(this.GetType().Name + "#LoadFcnfs: 【終了】"); // // // // log_Method.EndMethod(log_Reports); }
//──────────────────────────────────────── /// <summary> /// コントロールにスタイルを設定します。 /// </summary> public void SetupStyle( TableUserformconfig fo_Config, MemoryApplication memoryApplication, Log_Reports pg_Logging ) { Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "SetupStyle", pg_Logging); // // // 全てのフォームの、レイアウトを一時停止。 // this.SuspendLayout( fo_Config, memoryApplication, pg_Logging ); foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig) { string sName_Control; fo_Record.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", memoryApplication, pg_Logging); // // S → E。 コントロール名 Expression_Node_StringImpl e_fcName = new Expression_Node_StringImpl(null, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree); e_fcName.AppendTextNode( sName_Control, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree, pg_Logging ); // // 名前から、コントロールの取得。 // List <Usercontrol> fcUcList; if (pg_Logging.Successful) { fcUcList = memoryApplication.MemoryForms.GetUsercontrolsByName( e_fcName, true, pg_Logging ); } else { fcUcList = new List <Usercontrol>(); } // // スタイルの設定。 // if (pg_Logging.Successful) { Usercontrol fcUc = fcUcList[0]; fcUc.SetupStyle( fo_Record, pg_Logging ); } // 「メインウィンドウ」の場合、更にスタイル設定の上書き。 string sType_Control; fo_Record.TryGetString(out sType_Control, NamesFld.S_TYPE, true, "", memoryApplication, pg_Logging); if (NamesF.S_MAINWND == sType_Control) { // // スタイルの設定。 // if (pg_Logging.Successful) { memoryApplication.MemoryForms.Mainwnd_FormWrapping.SetupStyle( fo_Record, pg_Logging ); } } } // // // 全てのフォームの、レイアウトの一時停止を解除。 // // this.ResumeLayout( fo_Config, memoryApplication, pg_Logging ); // // // // pg_Method.EndMethod(pg_Logging); }
//──────────────────────────────────────── /// <summary> /// コントロールにスタイルを設定します。 /// </summary> public void SetupStyle( TableUserformconfig fo_Config, MemoryApplication memoryApplication, Log_Reports pg_Logging ) { Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "SetupStyle",pg_Logging); // // // 全てのフォームの、レイアウトを一時停止。 // this.SuspendLayout( fo_Config, memoryApplication, pg_Logging ); foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig) { string sName_Control; fo_Record.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", memoryApplication, pg_Logging); // // S → E。 コントロール名 Expression_Node_StringImpl e_fcName = new Expression_Node_StringImpl(null, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree); e_fcName.AppendTextNode( sName_Control, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree, pg_Logging ); // // 名前から、コントロールの取得。 // List<Usercontrol> fcUcList; if (pg_Logging.Successful) { fcUcList = memoryApplication.MemoryForms.GetUsercontrolsByName( e_fcName, true, pg_Logging ); } else { fcUcList = new List<Usercontrol>(); } // // スタイルの設定。 // if (pg_Logging.Successful) { Usercontrol fcUc = fcUcList[0]; fcUc.SetupStyle( fo_Record, pg_Logging ); } // 「メインウィンドウ」の場合、更にスタイル設定の上書き。 string sType_Control; fo_Record.TryGetString(out sType_Control, NamesFld.S_TYPE, true, "", memoryApplication, pg_Logging); if (NamesF.S_MAINWND == sType_Control) { // // スタイルの設定。 // if (pg_Logging.Successful) { memoryApplication.MemoryForms.Mainwnd_FormWrapping.SetupStyle( fo_Record, pg_Logging ); } } } // // // 全てのフォームの、レイアウトの一時停止を解除。 // // this.ResumeLayout( fo_Config, memoryApplication, pg_Logging ); // // // // pg_Method.EndMethod(pg_Logging); }
//──────────────────────────────────────── /// <summary> /// 全てのフォームの、レイアウトを一時停止。 /// </summary> private void SuspendLayout( TableUserformconfig fo_Config, MemoryApplication memoryApplication, Log_Reports pg_Logging ) { Log_Method pg_Method = new Log_MethodImpl(0, Log_ReportsImpl.BDebugmode_Static); pg_Method.BeginMethod(Info_LayoutImpl.Name_Library, this, "SuspendLayout",pg_Logging); // // foreach (RecordUserformconfig fo_Record in fo_Config.List_RecordUserformconfig) { string sName_Control; fo_Record.TryGetString(out sName_Control, NamesFld.S_NAME, true, "", memoryApplication, pg_Logging); // // S → E。 コントロール名 Expression_Node_StringImpl e_fcName = new Expression_Node_StringImpl(null, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree); e_fcName.AppendTextNode( sName_Control, fo_Record.Parent_TableUserformconfig.Cur_Configurationtree, pg_Logging ); List<Usercontrol> list_FcUc; if (pg_Logging.Successful) { list_FcUc = memoryApplication.MemoryForms.GetUsercontrolsByName( e_fcName, true, pg_Logging ); } else { list_FcUc = new List<Usercontrol>(); } if (pg_Logging.Successful) { Usercontrol uct = list_FcUc[0]; if (uct is UsercontrolWindow) { UsercontrolWindow uctWnd = (UsercontrolWindow)uct; uctWnd.CustomcontrolWindow1.SuspendLayout(); } } } // // // // pg_Method.EndMethod(pg_Logging); }