我需要为每个按钮添加一个单击事件。
单击按钮时,它会将点添加到 SQL 数据表,但我可以自己完成,我只需要启动方面的帮助。
for (int i = 0; i < matches.Count; i++)
{
Button buttonWhite = new Button();
//button settings
buttonWhite.Tag = i;
round1.Controls.Add(buttonWhite);
Button buttonDraw = new Button();
//button setting
buttonDraw.Tag = i;
round1.Controls.Add(buttonDraw);
Button buttonBlack = new Button();
//button settings
buttonBlack.Tag = i;
round1.Controls.Add(buttonBlack);
}
按钮数量不同
像下面这样的怎么样?值可能不正确,但由于您可以自己完成该部分,因此这是一个如何动态创建可用事件的工作示例。
public Form1()
{
InitializeComponent();
List<int> matches = new List<int>() { 1,2,3 };
round1.Size = new Size(1000, 1000);
int x = 1;
int y = 1;
int buttonHeight = 20;
int buttonWidth = 100;
int pad = 25;
for (int i = 0; i < matches.Count; i++)
{
Button buttonWhite = new Button()
{
Location = new Point(x+(buttonWidth*i)+pad, x),
Size = new Size(buttonWidth, buttonHeight),
Text = $"Button{(i*3)+1}",
Tag = i
};
round1.Controls.Add(buttonWhite);
buttonWhite.Click += Button_Click;
Button buttonDraw = new Button()
{
Location = new Point(x + (buttonWidth * i) + pad, x + pad),
Size = new Size(buttonWidth, buttonHeight),
Text = $"Button{(i*3)+2}",
Tag = i
};
round1.Controls.Add(buttonDraw);
buttonDraw.Click += Button_Click;
Button buttonBlack = new Button()
{
Location = new Point(x + (buttonWidth * i) + pad, x + (pad*2)),
Size = new Size(buttonWidth, buttonHeight),
Text = $"Button{(i*3)+3}",
Tag = i
};
round1.Controls.Add(buttonBlack);
buttonBlack.Click += Button_Click;
}
}
private void Button_Click(object sender, EventArgs e)
{
int value = (int)((Button)sender).Tag;
MessageBox.Show($"Add {value} to SQL Table here");
}