對於一個學校任務,我們使用C#製作國際象棋遊戲,其中我們必須學會以面向對象的方式工作。該板在嵌套開出了2D圖片框陣列的for循環從標籤中的對象獲取屬性
//Create the Board Pattern out of PictureBoxes
#region Checkerboard
PictureBox[,] Vak = new PictureBox[8, 8];
for (int i = 0; i < 8; i++)
{
for (int x = 0; x < 8; x++)
{
Vak[i, x] = new PictureBox();
Vak[i, x].Name = String.Format("{0},{1}", i, x);
Vak[i, x].Width = 50;
Vak[i, x].Height = 50;
Vak[i, x].Location = new Point(xpos, ypos);
Vak[i, x].SizeMode = PictureBoxSizeMode.Zoom;
Vak[i, x].Click += Chess_Click;
if ((i + x) % 2 == 0)
{
Vak[i, x].BackColor = ColorTranslator.FromHtml("#e5e5e5"); //white ColorTranslator.FromHtml("#e5e5e5");
}
else
{
Vak[i, x].BackColor = ColorTranslator.FromHtml("#545454"); //black ColorTranslator.FromHtml("#545454");
}
xpos += 50;
this.Controls.Add(Vak[i, x]);
}
xpos = 50;
ypos += 50;
this.Controls.Add(border);
}
#endregion
在其他職位我發現我可以指一類(通過PictureBox的)使用.TAG屬性像這樣:
Vak[i,x].Tag = new Tower();
但是,我不能想出一個辦法,從withing標籤
說出塔類有一個「名稱」屬性調用從塔類的屬性,我怎麼會去調用該
string objectname = Vak[i,x].Tag.(name?)
對不起,如果這是一個愚蠢的問題,但我對編程非常陌生。 謝謝!
如果您知道在「標籤」屬性中存儲的對象的類型,則需要將其明確轉換爲該類型以訪問其屬性。像'((Tower)(Vak [i,x]))。Name'。 – dotNET
我建議不要使用'Tag'屬性,而是用picturebox和chesspiece成員創建自己的結構。 – wimh
@Wimmel我該怎麼做呢? –