C# 在windows应用程序中触发动态创建的控件的单个事件
我已经创建了一个代码,用于在windows应用程序的运行时创建一组控件。 我正在尝试获取按钮的单个单击事件,但这对所有按钮都有效 我正在尝试的代码是C# 在windows应用程序中触发动态创建的控件的单个事件,c#,.net,winforms,linq,C#,.net,Winforms,Linq,我已经创建了一个代码,用于在windows应用程序的运行时创建一组控件。 我正在尝试获取按钮的单个单击事件,但这对所有按钮都有效 我正在尝试的代码是 public partial class Employee_PayHeads_add : Form { private TextBox newTxtBox = new TextBox(); private Button newBtnAdd = new Button(); private ComboBox newComb
public partial class Employee_PayHeads_add : Form
{
private TextBox newTxtBox = new TextBox();
private Button newBtnAdd = new Button();
private ComboBox newCombohead = new ComboBox();
private int txtBoxStartPosition = 150;
private int btnAddStartPosition = 240;
private int comboheadStartPosition = 10;
private int txtBoxStartPositionV = 25;
private int btnAddStartPositionV = 25;
private int comboheadStartPositionV = 25;
public Employee_PayHeads_add()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
TextBox newTxtBox = new TextBox();
Button newBtnAdd = new Button();
ComboBox newCombohead = new ComboBox();
newBtnAdd.BackColor = Color.Gray;
newBtnAdd.Text = "Remove";
newBtnAdd.Location = new System.Drawing.Point(btnAddStartPosition, txtBoxStartPositionV);
newBtnAdd.Size = new System.Drawing.Size(70, 25);
newTxtBox.Text = "";
newTxtBox.Location = new System.Drawing.Point(txtBoxStartPosition, btnAddStartPositionV);
newTxtBox.Size = new System.Drawing.Size(70, 40);
newCombohead.Location = new System.Drawing.Point(comboheadStartPosition, comboheadStartPositionV);
panel1.Controls.Add(newBtnAdd);
panel1.Controls.Add(newTxtBox);
panel1.Controls.Add(newCombohead);
txtBoxStartPositionV += 30;
btnAddStartPositionV += 30;
comboheadStartPositionV += 30;
newBtnAdd.Click += new EventHandler(ButtonClick);
}
void ButtonClick(object sender, EventArgs e)
{
label1.Text = "Hello Gagan";
}
我想获得单个按钮的点击事件,假设我必须在标签1上的按钮对应的文本框中显示文本
提前谢谢。我不知道你愿意做什么。不管怎样看上面的代码,您可能有很多控件串联在一起(Button后跟Textbox,然后是ComboBox),它们都是通过button1\u Click()添加到面板中的。如果是这种情况,请按照以下顺序操作:
void bu_Click(object sender, EventArgs e)
{
Type type = panel1.Controls[(panel1.Controls.IndexOf(sender as Button)) + 1].GetType();
if(type == typeof(TextBox))
{
TextBox tb = (TextBox) panel1.Controls[
(panel1.Controls.IndexOf(sender as Button)) + 1];
tb.Text = "Hello Gagan";
}
}
问题是您不能正确动态地引发事件。您想为每个按钮单击事件创建一个方法吗?我真的不明白你是不是把标签放在panel1里了?事实上,我必须在数据库的文本框中发送值,只要点击旁边的按钮。