首页 文章

C#:使用Interface将用户控件中的现有控件集成到另一个表单中

提问于
浏览
0

我有一个用户控件/表单有一些控件(按钮,Groupboxes,...) . 我想创建一个界面,让用户从自己的表单中访问这些控件 . 这意味着当他点击表单中的按钮时,它将在我的表单中执行按钮的内容,如下所示:

void Btn1_Click(object sender, EventArgs e)
    {

        [some statements and preparation code]  
        using (var Dialog= new UserControlClass())
        {
            Dialog.Initialization();
            Dialog.ShowDialog(this);
        }
        [some statements code] 
     }

用户无法访问我的代码,我只想让他使用界面访问我的控件,同时保持我的代码不变 . 工厂是否是正确的解决方案,以及如何做到这一点?

1 回答

  • 1

    例如,假设您有这样的用户控件 . 并且您想要从父窗体中单击按钮1 .

    public partial class MyUserControl : UserControl
    {
        public MyUserControl()
        {
            InitializeComponent();
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello!");
        }
    
        public void ShowDialog()
        {
            button1_Click(null, new EventArgs());
        }
    }
    

    为此,您可以向界面添加公共函数(例如: ShowDialog ),并从主窗体中调用它 .

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            myUserControl1.ShowDialog();
        }
    }
    

相关问题