C#中Winform的MDI窗体问题 50
创建一个MDI窗体,它可以通过菜单打开两个子窗体,一个窗体中是产品的添加表单,另一个窗体是一个ListView的产品列表页,要求在同时打开两个窗体的情况下,用产品添加提交...
创建一个MDI窗体,它可以通过菜单打开两个子窗体,一个窗体中是产品的添加表单,另一个窗体是一个ListView的产品列表页,要求在同时打开两个窗体的情况下,用产品添加提交的产品信息,可以马上出现在产品列表的最后一条
展开
1个回答
展开全部
用委托就可以实现。
首先在表单窗体上建一个事件,在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)
{
// 这里加新节点,当然可以将参数的类型换成实体类
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询