专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++ Builder

关于c#窗体开发,该怎么解决

发布时间:2011-06-28 14:05:58 文章来源:www.iduyao.cn 采编人员:星星草
关于c#窗体开发
VisualStutio 2005有两个窗体,所含控件如下:
form1:treeview1,其中含有1个root的根节点,button1(用来打开form2)

form2:有个button1

如何通过form2中得按钮创建treeview1 root下得一个名为“hh”得子节点。

(已经通过传递form1得一个引用给了form2)代码:
form1中: Form2 fr=new Form2(this);
  fr.ShowDialog();
form2中: private Form1 f;
  public Form2(Form1 fr)
  {
  InitializeComponent();
  f = fr;
  }

------解决方案--------------------
传数据,不要传界面类
在你需要搜集数据的时候,如果用户点击了确定按钮并且数据校验通过,那么把用户输入保存到表单属性,在调用form的方法里面等搜集数据成功的时候访问表单属性来获得用户输入并且更新界面
------解决方案--------------------
form1里面的treeview是form1的私有变量,在外部用不起来的所以不可能在form2的button单击事件里面写treeview的添加动作,这个问题通常需要你自己再写个委托,或者做成事件。

C# code

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            if (Form2.s_addNode == null)
            {
                Form2.s_addNode = this.AddForMyTree;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2();
            f.Show();
        }

        private void AddForMyTree()
        {
            TreeNode t = new TreeNode("N2");
            treeView1.Nodes.Add(t);
        }
    }

    public delegate void AddNode();
    public partial class Form2 : Form
    {
        public static AddNode s_addNode;
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            s_addNode();
        }
    }

------解决方案--------------------
用f.treeview1.....

可以直接访问的吧?有这种用法。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: