用于以编程方式创建的用户控件的C#Winform Click事件[复制]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于以编程方式创建的用户控件的C#Winform Click事件[复制]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我创建了一个用户控件,其中包含配置文件pix,名称,员工号,分支(类似于联系人卡片)。在表单上,​​我放置了一个flowlayoutview,并希望为表名用户的每一行显示用户控件。

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;)

并且它可以工作,在每行的用户控件中显示所有用户详细信息。

现在的问题是;我需要在用户控件上创建一个click事件,以便将相关的用户控件ID填充到textBox1。

用户控件 - > uList.Name =“userlst11”+ i; count是表用户中的行号

如何为每个用户控件(ulist.Name)创建Click事件。

我面临的问题是,增量的用户控件名称是uList.Name =“userlst11”+ i;。我在哪里放置click事件。我想点击事件进行用户控制(ulist)。

我觉得这篇文章不是重复,因为我需要在我的用户控件上使用click事件,这是一个带有新名称的增量。

答案

你可以这样做:

    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 };

以上是关于用于以编程方式创建的用户控件的C#Winform Click事件[复制]的主要内容,如果未能解决你的问题,请参考以下文章

在C#winform中删除运行时生成的控件

C# WPF 如何以编程方式设置控件的位置、宽度和高度?

c# winform .net 为用户控件创建按钮点击事件

C#WinForm中,用于将图片以二进制存入sql数据库中,并将图片从数据库中取出,显示在PictureBox控件中。

C#winform动态添加控件

C#winform 主窗体上的用户控件怎样调用主窗体的一个方法!