从其他形式刷新树视图组件

时间:2013-05-17 21:45:15

标签: c# winforms

我目前有一个处理我的treeview和其他winForm组件的类。

我想使用另一个表单作为我的输入,一旦我按下保存按钮,它应该在另一个表单上更新我的treeview组件。到目前为止,我所尝试的并没有奏效。

这是我的代码:

* mainDisplay是我的表单,其中包含我的组件并存储我保存数据的变量

这里我将日期加载到树视图中

    public void mainDisplay_Load( TreeNode input)
    {
        treeView1.BeginUpdate();
        foreach (data x in mydata1)
        {
            Console.WriteLine(x.getName());
            if (x.getName() != null)
            {
                treeView1.Nodes.Add(input);
            }

        }
        treeView1.Refresh();

    }

这是我在OTHER表单上的按钮操作:

    private void button1_Click(object sender, EventArgs e)
    {
        if (!(String.IsNullOrEmpty(getnamebox.Text))) ;
        {
            mainDisplay putdata = new mainDisplay();

            name = getnamebox.Text;
            pass = getpassbox.Text;
            url = geturlbox.Text;
            notes = getnotebox.Text;

            data newData = new data(name, pass, notes);
            mainDisplay.mydata1.Add(newData);

            TreeNode mytree = new TreeNode(name);
            putdata.mainDisplay_Load(mytree);

            this.Hide();

        }

任何提示都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

您刚刚在某处创建了一个全新的主显示表单(在内存中),并为其添加了一个树节点。

您需要向前传递主显示的引用(通常在初始化函数中或根据您的内容的设置追溯您的第二个表单的父级),然后使用对实际主表单的引用来更新树