首页 新闻 搜索 专区 学院

Winform关闭窗体后,点击父窗体的TreeView

0
悬赏园豆:10 [已解决问题] 解决于 2011-11-17 14:21

if (Form1.ShowDialog() == DialogResult.OK)
{

    //这里要怎么写,才能实现下面的方法事件
}

private void tvTypeMenu_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
 {
}

问题补充:

就是关闭窗口后,要刷新更改后的DATAGRIDVIEW数据。

我的想法是通过点击TreeView的树节点,重新读取数据,然后绑定。

TreeView绑定的数据是个分类(如QQ,MSN)

通过点击分类(QQ,MSN)读取分类的数据,然后修改完数据后,关闭窗体后,要刷新更新后的数据

戴眼镜的乌龟的主页 戴眼镜的乌龟 | 初学一级 | 园豆:21
提问于:2011-06-19 00:27
< >
分享
最佳答案
0

if (Form1.ShowDialog() == DialogResult.OK)
{    //这里要怎么写,才能实现下面的方法事件this.tvTypeMenu.NodeMouseClick += new TreeNodeMouseClickEventHandler(tvTypeMenu_NodeMouseClick);
}

void tvTypeMenu_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            throw new NotImplementedException();
        }

收获园豆:5
蓦然回首的思念 | 小虾三级 |园豆:900 | 2011-06-20 10:17
其他回答(3)
0

问题描述清楚再说。。。

顾晓北 | 园豆:10245 (专家六级) | 2011-06-19 22:06
0

用模式窗体,更改数据后重新绑定下数据源就OK了

王元勋 | 园豆:413 (菜鸟二级) | 2011-06-20 08:34
0

兄弟,我收回我早上的回答。你是不是这个意思:

可以用Invoke调用你想要触发的事件,这样可以模拟用户点击了一次。不过,就是你要设置好args参数,指定要点击的Node还有位置。具体你自己再测试测试吧。下边是我给出的代码,用MessageBox模拟弹出窗口,也就是子窗口。

public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();

this.tvTypeMenu.NodeMouseClick += new TreeNodeMouseClickEventHandler(tvTypeMenu_NodeMouseClick);
this.tvTypeMenu.Nodes.Add("123");
}

void tvTypeMenu_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{

if (MessageBox.Show("ok") == System.Windows.Forms.DialogResult.OK)
{
TreeNodeMouseClickEventArgs args
= new TreeNodeMouseClickEventArgs(this.tvTypeMenu.Nodes[0], System.Windows.Forms.MouseButtons.Left, 0, 0, 0);


this.Invoke(new TreeNodeMouseClickEventHandler(this.tvTypeMenu_NodeMouseClick), this.tvTypeMenu, args);

}
}
}
收获园豆:5
InFuture | 园豆:325 (菜鸟二级) | 2011-06-20 09:06
不过,说老实话,还是用数据传递比较好。这样的代码不太好维护。
支持(0) 反对(0) InFuture | 园豆:325 (菜鸟二级) | 2011-06-20 13:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册