解决为点击事件生成的按钮

本文关键字:按钮 事件 解决 | 更新日期: 2023-09-27 18:33:47

我有一个类,它根据我的数据库创建带有控件的面板。它创建一个面板,每个面板上都有一个按钮,在数据库中的每一行。如何解决一个特定按钮来生成点击事件?

我是个菜鸟,也许在我的头上,但你没有学会在浅水区游泳;)任何帮助表示赞赏!

while (myDataReader.Read())
{
  i++;
  Oppdrag p1 = new Oppdrag();
  p1.Location = new Point (0, (i++) * 65);
  oppdragPanel.Controls.Add(p1);
  p1.makePanel();
}
class Oppdrag : Panel
{
  Button infoBtn = new Button();
  public void makePanel()
  {
    this.BackColor = Color.White;
    this.Height = 60;
    this.Dock = DockStyle.Top;
    this.Location = new Point(0, (iTeller) * 45);
    infoBtn.Location = new Point(860, 27);
    infoBtn.Name = "infoBtn";
    infoBtn.Size = new Size(139, 23);
    infoBtn.TabIndex = 18;
    infoBtn.Text = "Edit";
    infoBtn.UseVisualStyleBackColor = true;
  }
}

解决为点击事件生成的按钮

您需要一个与通过单击按钮引发的事件匹配的方法。

即)

void Button_Click(object sender, EventArgs e)
{
    // Do whatever on the event
}

然后,您需要将点击事件分配给该方法。

p1.infoBtn.Click += new System.EventHandler(Button_Click);

希望这有帮助。

可以在创建按钮时为按钮添加事件处理程序。您甚至可以为每个按钮添加唯一的CommandArgument,以便将一个按钮与另一个按钮区分开来。

public void makePanel()
{
  /* ... */
  infoBtn.UseVisualStyleBackColor = true;
  infoBtn.Click += new EventHandler(ButtonClick);
  infoBtn.CommandArgument = "xxxxxxx"; // optional
}
public void ButtonClick(object sender, EventArgs e)
{
  Button button = (Button)sender;
  string argument = button.CommandArgument; // optional
}