private void pctxtEdits_TextChanged(object sender, EventArgs e) { if (!this.PctxtEdits_autoInput) { TextBox pctxt = (TextBox)sender; ListBox pclst = this.pclstNums; if (0 <= pclst.SelectedIndex) { int selectedIndex = pclst.SelectedIndex;//値を退避 Memory4bSpritePartsnumberImpl numSp = (Memory4bSpritePartsnumberImpl)pclst.Items[selectedIndex]; this.Owner_MemoryApplication.SetText_SpritePartsnumber(numSp, pctxt.Text, this.Owner_MemoryApplication); this.Owner_MemoryApplication.Delegate_OnChanged_SomeContents(); this.PclstNums_autoInput = true;//自動入力開始 pclst.Items.RemoveAt(selectedIndex); pclst.Items.Insert(selectedIndex, numSp); pclst.SelectedIndex = selectedIndex; this.PclstNums_autoInput = false;//自動入力終了 this.Refresh(); } } }
//──────────────────────────────────────── /// <summary> /// [新規追加] /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ccbtnAdds_Click(object sender, EventArgs e) { ListBox pclst = this.pclstNums; Memory4bSpritePartsnumber mNum = new Memory4bSpritePartsnumberImpl(this.Owner_MemoryApplication.Count_Creates.ToString()); mNum.Delegate_OnChangeSprite_Partsnumber = UsercontrolCanvas_OnChangeSpritePartsnumber; this.Owner_MemoryApplication.Count_Creates++; mNum.LocationOnBackgroundActual = new PointF( this.Width / 2 - this.Owner_MemoryApplication.BgLocationScaled.X, this.Height / 2 - this.Owner_MemoryApplication.BgLocationScaled.Y ); mNum.Number_Layer = this.Owner_MemoryApplication.SelectedLayer; this.AddNumSp(mNum, false); this.After_AddSpriteList(); // 選択項目を編集ボックスに表示 this.proc001(); // フォームを再描画。 this.Refresh(); }
//──────────────────────────────────────── #endregion #region アクション //──────────────────────────────────────── public void Perform() { Log_Method log_Method = new Log_MethodImpl(0); Log_Reports log_Reports_ThisMethod = new Log_ReportsImpl(log_Method); log_Method.BeginMethod(Info_PartsnumPut.Name_Library, this, "Perform", log_Reports_ThisMethod); this.In_UsercontrolCanvas.ClearNumSps(true); log_Method.WriteDebug_ToConsole("Performを実行しました。"); // // テーブル読取 // //Dictionary<string, int> dictionary_NameField = new Dictionary<string, int>(); //欲しい列が何番目にあるかを調べます。 int row = 0; // 「NO」、「DISPLAY」、「LAYER」「X」「Y」「FONT_SIZE」「COLOR_BG」(「END」)の8フィールドがある。 int indexColumn_Display = -1; int indexColumn_Text = -1; int indexColumn_Layer = -1; int indexColumn_X = -1; int indexColumn_XLt = -1; int indexColumn_Y = -1; int indexColumn_YLt = -1; int indexColumn_FontSize = -1; int indexColumn_FontSizePt = -1; int indexColumn_ColorBg = -1; int indexColumn_BackColor = -1; //this.in_Table_Humaninput.RecordFielddefinition.ForEach(delegate(Fielddefinition fielddefinition, ref bool isBreak2, Log_Reports log_Reports2) //{ //},log_Reports_ThisMethod); // 列のindex。該当がなければ-1。 indexColumn_Display = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("DISPLAY"); indexColumn_Text = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("TEXT"); indexColumn_Layer = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("LAYER"); indexColumn_X = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("X"); indexColumn_XLt = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("X_LT"); indexColumn_Y = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("Y"); indexColumn_YLt = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("Y_LT"); indexColumn_FontSize = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("FONT_SIZE"); indexColumn_FontSizePt = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("FONT_SIZE_PT"); indexColumn_ColorBg = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("COLOR_BG"); indexColumn_BackColor = this.in_Table_Humaninput.RecordFielddefinition.ColumnIndexOf_Trimupper("BACK_COLOR"); this.in_Table_Humaninput.ForEach_Datapart(delegate(Record_Humaninput recordH, ref bool isBreak1, Log_Reports log_Reports1) { //log_Method.WriteDebug_ToConsole("row=[" + row + "] recordH.ToString_DebugDump()=[" + recordH.ToString_DebugDump() + "]"); //if (row == 0) //{ // // 上1行は「列名」。 // //log_Method.WriteDebug_ToConsole("indexColumn_BackColor=[" + indexColumn_BackColor + "] recordH.ToString_DebugDump()=[" + recordH.ToString_DebugDump()+ "]"); // goto gt_LastLoop; //} //else if (row < 3) //{ // // 上3行(row=0,1,2)は「列名」「型」「解説」として無視。 // goto gt_LastLoop; //} // 左端に EOF が入っていれば終了。 if ("EOF" == recordH.ValueAt(0).Text.Trim()) { isBreak1 = true; goto gt_LastLoop; } Memory4bSpritePartsnumberImpl memSpriteNum = new Memory4bSpritePartsnumberImpl(); memSpriteNum.Delegate_OnChangeSprite_Partsnumber = this.In_UsercontrolCanvas.UsercontrolCanvas_OnChangeSpritePartsnumber; //表示テキスト { if (0 <= indexColumn_Text) { memSpriteNum.Text = recordH.ValueAt(indexColumn_Text).Text; } else if (0 <= indexColumn_Display) { //旧仕様 memSpriteNum.Text = recordH.ValueAt(indexColumn_Display).Text; } } //レイヤー if (0 <= indexColumn_Layer) { int nLayer = 0; int.TryParse(recordH.ValueAt(indexColumn_Layer).Text, out nLayer); memSpriteNum.Number_Layer = nLayer; } //座標 { //左辺x int x = 0; { if (0 <= indexColumn_XLt) { int.TryParse(recordH.ValueAt(indexColumn_XLt).Text, out x); } else if (0 <= indexColumn_X) { int.TryParse(recordH.ValueAt(indexColumn_X).Text, out x); } } //上辺y int y = 0; { if (0 <= indexColumn_YLt) { int.TryParse(recordH.ValueAt(indexColumn_YLt).Text, out y); } else if (0 <= indexColumn_Y) { int.TryParse(recordH.ValueAt(indexColumn_Y).Text, out y); } } memSpriteNum.LocationOnBackgroundActual = new PointF(x, y); } //フォントサイズ(1以上の数字なら有効) { int fontsize = -1; if (0 <= indexColumn_FontSizePt) { if (int.TryParse(recordH.ValueAt(indexColumn_FontSizePt).Text, out fontsize)) { fontsize = -1; } } else if (0 <= indexColumn_FontSize) { //旧仕様 if (int.TryParse(recordH.ValueAt(indexColumn_FontSize).Text, out fontsize)) { fontsize = -1; } } if (1 <= fontsize) { memSpriteNum.Font = new System.Drawing.Font("MS ゴシック", (float)fontsize); } } //背景色 { string name_Color = ""; if (0 <= indexColumn_BackColor) { name_Color = recordH.ValueAt(indexColumn_BackColor).Text; } else if (0 <= indexColumn_ColorBg) { //旧仕様 name_Color = recordH.ValueAt(indexColumn_ColorBg).Text; } switch (name_Color) { case "Green": memSpriteNum.BrushBackground = Brushes.Green; break; default: memSpriteNum.BrushBackground = Brushes.Blue; break; } } this.In_UsercontrolCanvas.AddNumSp(memSpriteNum, true); // gt_LastLoop://continueを使わない。 row++; }, log_Reports_ThisMethod); this.In_UsercontrolCanvas.After_AddSpriteList(); // フォームを再描画。 this.In_UsercontrolCanvas.Refresh(); // goto gt_EndMethod; // gt_EndMethod: log_Method.EndMethod(log_Reports_ThisMethod); return; }