我有一个100个按钮的10x10网格,我想在点击时隐藏按钮。
有没有办法将此应用于所有按钮?即,当点击任何按钮时,该按钮被隐藏。我使用表格布局来安排C#中的100个按钮。
我也将它添加到表格布局中,所以请告诉我如何将这些按钮添加到该10x10表格中。如何命名按钮对象以及如何将所有执行操作的单个事件添加到自身(即隐藏单击时自己
答案 0 :(得分:9)
创建100个按钮
foreach (int i in Enumerable.Range(0, 10))
{
foreach (int j in Enumerable.Range(0, 10))
{
Button b = new Button();
b.Size = new System.Drawing.Size(20, 20);
b.Location = new Point(i * 20, j * 20);
b.Click += new EventHandler(anyButton_Click); // <-- all wired to the same handler
this.Controls.Add(b);
}
}
并将它们全部连接到同一个事件处理程序
void anyButton_Click(object sender, EventArgs e)
{
var button = (sender as Button);
if (button != null)
{
button.Visible = false;
}
}
在事件处理程序中,您将sender
投射到Button
,这是按下的特定按钮。
答案 1 :(得分:0)
由于您使用的是tablelayoutpanel,因此无需计算按钮的位置,控件正在为您执行此操作。您还可以将按钮停靠属性设置为填充,因此您无需设置按钮的大小。您所要做的就是设置tableLayoutPanle
的属性所以..
Button b;
foreach (int i in Enumerable.Range(0, 100))
{
b = new Button();
//b.Size = new System.Drawing.Size(20, 20);
b.Dock = DockStyle.Fill
b.Click += new EventHandler(anyButton_Click); // <-- all wired to the same handler
tableLayoutPanel.Controls.Add(b);
}