[英]Drawing a label array in c#
對於我的項目,我需要創建類似於網格的可點擊拼貼。 為此,我決定嘗試使用標簽數組,然后單擊其中的任何一個都會導致與單擊的標簽相對應的鼠標單擊事件。 我不想使用Visual Studio拖放標簽來繪制我需要的220,所以我決定創建一個Labels數組。 這是我用來測試標簽數組使用的代碼:
Label[] Tiles = new Label[10];
for (int i = 0; i != 10; i++)
{
for (int n = 0; n != 22; n++)
{
Tiles[i] = new Label();
Tiles[i].Size = new Size(62, 62);
Tiles[i].Location = new System.Drawing.Point(n * 62 + 118, 106 + i * 62);
Tiles[i].Text = (i+n).ToString();
Tiles[i].Name = (i + n).ToString();
Tiles[i].AutoSize = true;
Tiles[i].Click += new System.EventHandler(this.label1_Click);
}
}
我在Form1_Load
方法中使用此代碼,但問題是它不會引發錯誤,但實際上並沒有在Form上獲取標簽,它只是初始化標簽但不繪制標簽,有人知道如何實際將它們添加到表單。
這真的很容易做到!
在最里面的for循環中,添加以下行:
this.Controls.Add(Tiles[i]);
它首先獲取表單上的所有控件,然后在其中添加標簽!
但是,我建議您將標簽添加到Panel
,這僅僅是因為自創建網格以來,您可能應該使用Panel
將標簽分組在一起。
在設計器中創建一個面板,將其labelPanel
或其他名稱,然后在最里面的for循環中調用此方法:
this.labelPanel.Controls.Add(Tiles[i]);
請注意,由於標簽的位置現在相對於面板,因此您需要再次調整它們。
您必須將該標簽添加到表單。 例如,在您的表單中放置一個groupbox並將其命名為group1。 現在將標簽添加到該組。 group1.Controls.Add(Tiles [i]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.