[英]Foreach Loop of Controls in TableLayoutPanel (C# WinForms)
[英]TableLayoutPanel loop (C# forms)
我有 3x3 网格,每个单元格都有标签,每个单元格都有文本“X”。 当我单击其中一个标签时,我希望它旁边的一个和一个通过使用 foreach 控件循环(行和列)将文本更改为“O”。 有谁知道它会是什么样子?
这当然不是一个完整的解决方案,但也许它会给你一个关于如何开始的想法。
要创建标签,您肯定希望以编程方式执行此操作:
for (int col = 0; col < table.ColumnCount; col++)
{
for (int row = 0; row < table.RowCount; row++)
{
Label lbl = new Label();
lbl.Click += Lbl_Click;
table.Controls.Add(lbl, col, row);
}
}
请注意,每个 label 的点击事件都是相同的。 在该事件中,您可以获得有关被点击的 label 的信息:
private void Lbl_Click(object sender, EventArgs e)
{
Label lbl = (Label)sender;
int row = table.GetRow(lbl);
int col = table.GetColumn(lbl);
lbl.Text = "O";
//This is just an example
//This will throw an error if you click the rightmost cell
Label lbl2 = (Label)table.GetControlFromPosition(col+1,row);
lbl2.Text = "O";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.