所以我有
TableLayoutPanel table = new System.Windows.Forms.TableLayoutPanel();
public int d;
private void button1_Click(object sender, EventArgs e)
{
d = (int)numericUpDown1.Value;
table.ColumnCount = d;
table.RowCount = d;
this.Controls.Add(table);
int k = 1;
for (int i = 0; i < d; ++i)
for (int j = 0; j < d; j++)
{
Label lab = new System.Windows.Forms.Label();
lab.Size = new Size(50, 50);
lab.Text = (k).ToString();
lab.TabIndex = k++;
lab.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
table.Controls.Add(lab, j, i);
}
table.Show();
}
这是一个Button Click方法。 我有Button2 Click方法,我想更改lab.TabIndex或/和lab.Text。 我怎么能这样做?
第二个问题: 我该如何点击其中一个标签?让我们说我想改变其中一个标签我点击的颜色......我该怎么做?
我是初学者所以......怜悯:)。
答案 0 :(得分:0)
定义标签数组(全局变量,就像使用table
一样):
Label[] labels;
在button1_Click
中添加代码行:
labels = new Label[d*d]; // array of d*d labels
在循环内部,定义特定标签,如:
labels[i*d+j] = new System.Windows.Forms.Label();
所以你的循环看起来像:
for (int i = 0; i < d; ++i)
for (int j = 0; j < d; j++)
{
labels[i*d+j] = new System.Windows.Forms.Label();
labels[i*d+j].Size = new Size(50, 50);
labels[i*d+j].Text = (k).ToString();
labels[i*d+j].TabIndex = k++;
labels[i*d+j].TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
table.Controls.Add(labels[i*d+j], j, i);
}
您也可以通过相同的方式(labels[n]
)