在运行时添加到 Windows Foam 的访问控制(文本框和组合框)

问题描述 投票:0回答:1

我正在将用户控件添加到我的主 Windows 泡沫中,用户控件由 Tablelayoutpanel 组成,其中包括 2 个组合框、1 个按钮和 4 个文本框,如下图所示:

我如何在运行时添加更多控件时访问这些控件中的每一个,如下图所示

在我的实践中,我知道访问在设计时创建的控件,但我不知道如何访问在运行时生成的控件。

我试过按钮点击事件,但它只显示单个按钮的点击事件,我如何访问运行时添加的多个按钮的点击事件。

c# visual-studio user-controls tablelayoutpanel
1个回答
0
投票

此示例显示如何将您自己的事件添加到用户控件中包含的多个按钮。

创建用户控件如下:

创建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");
        }
    }
}


以此为例,你可以在其中添加单独的事件,也可以添加统一的事件。

从相应的容器中找到它们即可。

© www.soinside.com 2019 - 2024. All rights reserved.