日期:2014-05-18  浏览次数:20417 次

winform刷新问题
各位同僚,小弟以前没有开发过winform项目,在这次做的项目中我遇到一个问题,有两个用户控件窗体 在单击用户窗体(form1)中的TreeView 的每一个节点时把用户窗体(form2)添加到group容器中,然后在form2窗体中执行删除或修改,如何刷新form1窗体中的TreeView控件

------解决方案--------------------
这种当然是使用事件+委托来实现了。
比如:在Form2中定义一个事件
OnAdd; //添加结点时。

然后在初始化Form2时一定要用Form1中的某个函数订阅这个事件,比如:
Form2 f2 = new Form2();
f2.OnAdd += this.AddNode();

在Form2的窗口中,添加结点时产生事件。
比如:
private void AddSomeThing()
{
//... Do Add Something
if(OnAdd!=null)OnAdd(...); //我没写,可以带参数的
}

这样你的主窗口就能收到这个事件了。
------解决方案--------------------
我写了一个,你看看。

这个是你要求的那个Form2。里面定义了相关的委托和事件。
C# code

    public partial class OptForm : Form
    {
        public delegate void OptEvent(string s);

        dexChan         onselectedindexchanging="GridView1_SelectedIndexChanging"></

------解决方案--------------------
学习
------解决方案--------------------
学习学习学习.........
------解决方案--------------------
如何刷新form1窗体中的TreeView控件
-----------
完成你的增删改操作后.重新调用你构建TreeView节点的方法即可.

就相当于重新加载一次数据
------解决方案--------------------
你首先把选中的TreeView 的节点记录下来,编辑完毕或者点删除。就执行SQL语句在数据库里面执行。
然后你关闭第二个窗体,肯定要刷新一次第一个窗体的,刷新第一个窗体可以使用SHOW,或者其他的方法。在那个方法里面,
再写一次你第一次加载TreeView 节点的方法,这样就完成刷新了