我正在将用户控件添加到我的主 Windows 泡沫中,用户控件由 Tablelayoutpanel 组成,其中包括 2 个组合框、1 个按钮和 4 个文本框,如下图所示:
我如何在运行时添加更多控件时访问这些控件中的每一个,如下图所示
在我的实践中,我知道访问在设计时创建的控件,但我不知道如何访问在运行时生成的控件。
我试过按钮点击事件,但它只显示单个按钮的点击事件,我如何访问运行时添加的多个按钮的点击事件。
此示例显示如何将您自己的事件添加到用户控件中包含的多个按钮。
创建用户控件如下:
创建winform项目如下:
using System;
using System.Drawing;
using System.Windows.Forms;
using WindowsFormsControlLibrary1;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
UserControl1 userControl = new UserControl1();
foreach (Control ctrl in userControl.Controls)
{
if (ctrl.Text is "button1")
{
Button btn = (Button)ctrl;
btn.Click += new EventHandler(Button1_Click);
}
else if (ctrl.Text is "button2")
{
Button btn = (Button)ctrl;
btn.Click += new EventHandler(Button2_Click);
}
}
userControl.Location = new Point(0, 0);
// userControl.Size = new Size(200, 100);
panel1.Controls.Add(userControl);
}
private void Button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello");
}
private void Button2_Click(object sender, EventArgs e)
{
MessageBox.Show("World");
}
}
}
以此为例,你可以在其中添加单独的事件,也可以添加统一的事件。
从相应的容器中找到它们即可。