C#中Winform的MDI窗体问题 50

创建一个MDI窗体,它可以通过菜单打开两个子窗体,一个窗体中是产品的添加表单,另一个窗体是一个ListView的产品列表页,要求在同时打开两个窗体的情况下,用产品添加提交... 创建一个MDI窗体,它可以通过菜单打开两个子窗体,一个窗体中是产品的添加表单,另一个窗体是一个ListView的产品列表页,要求在同时打开两个窗体的情况下,用产品添加提交的产品信息,可以马上出现在产品列表的最后一条 展开
 我来答
sdssunsds
2017-10-24 · TA获得超过222个赞
知道小有建树答主
回答量:121
采纳率:75%
帮助的人:71.7万
展开全部

用委托就可以实现。

首先在表单窗体上建一个事件,在MDI窗体创建这个窗体时把这个窗体的事件初始化,然后在事件中调用listview窗体里的一个添加新节点的方法就可以了,下面是例子:

class MDIForm : Form
{
    private void click(object sender, EventArge e) // 点击菜单创建两个窗体事件
    {
        FrameForm frame = new FrameForm();
        ListViewForm tree = new ListViewForm();
        // 初始化事件,并在事件中调用listview窗体里的添加节点方法
        frame.AddNode = new Action<string>((string name) => 
        {
            tree.AddNode(name);
        });
        frame.Show();
        tree.Show();
    }
}
// 表单窗体
class FrameForm : Form
{
    public event Action<string> AddNode;
    private void Sub() // 表单提交的方法
    {
        AddNode("新节点"); // 这里是节点的名字,当然也可以是实体类,那么就需要在上面的事件里改一下参数了
    }
}
class ListViewForm : Form
{
    public void AddNode(string name)
    {
        // 这里加新节点,当然可以将参数的类型换成实体类
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式