要在C# Panel中的子窗口中调用主窗口的方法,需要使用委托和事件的概念。

首先,在主窗口中定义一个委托和一个事件,代码如下:

public delegate void MyEventHandler(string message);
public event MyEventHandler MyEvent;

然后,在子窗口中,需要传入主窗口的实例,并在需要调用主窗口方法的地方触发事件,代码如下:

public partial class SubForm : Form
{
    private MainForm parentForm;

    public SubForm(MainForm parentForm)
    {
        InitializeComponent();
        this.parentForm = parentForm;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        parentForm.MyEvent("Hello from sub form!");
    }
}

最后,在主窗口中,需要订阅事件并实现委托方法,代码如下:

public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
        SubForm subForm = new SubForm(this);
        MyEvent += new MyEventHandler(MyEventHandlerMethod);
        subForm.Show();
    }

    private void MyEventHandlerMethod(string message)
    {
        MessageBox.Show(message);
    }
}

这样,在子窗口中点击按钮时,就会触发主窗口的MyEvent事件,并调用MyEventHandlerMethod方法,弹出一个消息框显示传入的消息

C# Panel 中的子窗口 调用主窗口的方法

原文地址: https://www.cveoy.top/t/topic/fFvz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录