c# - 以编程方式创建的用户控件的 C# Winform Click 事件
问题描述
我创建了一个用户控件,其中包含个人资料 pix、姓名、员工编号、分支机构(类似于联系人卡片)。在一个表单上,我放置了一个 flowlayoutview,并希望为表名 users 上的每一行显示用户控件。
private void Users_Load(object sender, EventArgs e)
{
load_grid();
Load_UserList();
}
void Load_UserList()
{
string conn = @"Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=ifz001;";
SqlConnection Connect = new SqlConnection(conn);
Connect.Open();
try
{
var cmdQuery = "SELECT * FROM Users";
var cmdCount = "SELECT COUNT (*) FROM Users";
SqlCommand cmdQ = new SqlCommand(cmdQuery, Connect);
SqlCommand cmdC = new SqlCommand(cmdCount, Connect);
int count = (int)cmdC.ExecuteScalar();
var ad = new SqlDataAdapter(cmdQuery, Connect);
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ad.Fill(dt);
for (int i = 0; i < dt.Rows.Count ; i++)
{
UserLst1 uList = new UserLst1();
uList.Name = "userlst11" + i;
uList.FullName.Text = dt.Rows[i]["fname"].ToString();
uList.Emp_Id.Text = dt.Rows[i]["emp_no"].ToString();
uList.Department.Text = dt.Rows[i]["dept"].ToString();
uList.Branch.Text = dt.Rows[i]["brn"].ToString();
uList.ProfilePix.Image = Image.FromFile(dt.Rows[i]["img_path"].ToString());
flowLayoutPanel1.Controls.Add(uList);
}
Connect.Close();
}
catch(Exception u)
{
MessageBox.Show(u.Message);
}
}
我没有在flowLayoutPanel1中拖放用户控件,而是使用上面的代码将它们显示在flowLayoutPanel1中。(UserLst1 uList = new UserLst1(); uList.Name = "userlst11" + i;)
它可以工作,在每一行的用户控件中显示所有用户的详细信息。
现在的问题是;我需要在用户控件上创建一个单击事件,以便将相关的用户控件 ID 填充到 textBox1。
用户控件 --> uList.Name = "userlst11" + i; count 是表 users 中的行号
如何为每个用户控件 (ulist.Name) 创建单击事件。
我面临的问题是,增量的用户控件名称是 uList.Name = "userlst11" + i;。我在哪里放置点击事件。我想要用户控件(ulist)的点击事件。
我觉得这篇文章不是重复的,因为我需要我的用户控件上的点击事件,这是一个带有新名称的增量。
解决方案
你可以这样做:
Button btn = new Button();
btn.Click += Btn_Click;
private static void Btn_Click(object sender, EventArgs e)
{
// do your magic here
}
甚至更简单:
btn.Click += (s,e) => { your magic here };
推荐阅读
- mediawiki - 如何从头开始重新创建 mediawiki 数据库?
- javascript - 我如何将对象传递给对象的属性?
- javascript - 如何在 JavaScript 中将特定属性访问到 JSON 或对象中
- javascript - 获取两个字符串之间的组
- assembly - x86 美国电话电报公司 | `add` 指令有什么作用?(使用内存寻址)
- google-apps-script - 当单元格在 Google 表格中达到某个值时,如何让宏自动触发?
- c# - 不断更新 ListView 模板中的标签
- python - 更改图表大小
- spring-mvc - Spring MVC - HTTP 状态 404 - 源服务器没有找到目标资源的当前表示
- java - 从 SQL Server 获取 pdf 文件