我還有什麼: Big PictureBox(讓我們稱之爲Pic_Map)在窗體上。類Ore.cs
,A List<Ore> ores;
和一個數據庫,它將數據提取並放入ores
列表中。在循環中添加控件(Picturebox)
功能:所以,這個功能是我有一個TextBox/Combobox和一個按鈕。當我按下按鈕時,它將通過ores
列表循環,並且基於等於數據的TexBox/ComboBox(在本例中爲Ore_Name),在Pic_Map的頂部動態添加PictureBoxes。
問題:這一切工作正常,但問題是,當我加入PictureBoxes動態,似乎只添加ores
名單上的最後一個值(上Pic_Map紅色圓圈)。所以,它最終只顯示1個PictureBox,而不是讓我們說3,因爲我有3個與TextBox/ComboBox匹配的值名稱。
問題:如何讓它工作,就像我寫/選擇「Flame Stone」一樣,它在名稱中包含「Flame Stone」的所有數據上添加它(而不是僅添加最後一個來自列表中的值)。
代碼:
private void PopulateComboBoxByName()
{
PictureBox ore_Area = new PictureBox();
db.GetOre(); //Getting data and putting it into "ores" list
foreach (Ore ore in db.ores)
{
if (CBOX_Filter.SelectedItem.ToString() == ore.Ore_Name)
{
int area_Width = Convert.ToInt32(ore.Area_Width);
int area_Height = Convert.ToInt32(ore.Area_Height);
int ore_Width = Convert.ToInt32(ore.Ore_Width);
int ore_Height = Convert.ToInt32(ore.Ore_Height) - area_Height/2;
ore_Area.Name = "ore_Area";
ore_Area.ImageLocation = @"Data\Images\Circle.png";
ore_Area.SizeMode = PictureBoxSizeMode.StretchImage;
ore_Area.Size = new Size(Convert.ToInt32(area_Width), Convert.ToInt32(area_Height));
ore_Area.Location = new Point(Convert.ToInt32(ore_Width), Convert.ToInt32(ore_Height));
ore_Area.BackColor = Color.Transparent;
this.Controls.Add(ore_Area);
}
}
ore_Area.Parent = PIC_Map;
}
圖片:
這個位置是否總是一樣? – LarsTech
是的,基本上「Image_Width」和「Image_Height」是放置圖片框的表單的座標。所以位置等可以是相同的,無所謂。 – SunnlightBro
你只創建一個PictureBox, – LarsTech