应无所住,而生其心
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

c# winfrom跨窗体传值

3429人阅读 2017/3/4 15:20 总访问:4699853 评论:0 收藏:0 手机
分类: .NET

微凉晨光里,再次见到你,笑得很甜蜜



其实只要能拿到彼此的对象,那么相互传值,相互访问就很好实现了。

所以只需要在主窗体实例化子窗体的时候把自己的对象传递过去就行了,也就是传递一个this即可,可以通过构造函数传递

示例代码如下:

主窗体:

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

        treeView1.Nodes.Add("aaa");
        treeView1.Nodes.Add("bbb");
    }

    //提供一个方法,让子窗体可以调用
    public void AddTreeNode(string name) 
    {
        treeView1.Nodes.Add(name);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        //在实例化子窗体的时候,把自己的对象给子窗体
        AddForm addform = new AddForm(this);
        addform.StartPosition = FormStartPosition.CenterScreen;

        addform.ShowDialog();
    }
}

子窗体:

public partial class AddForm : Form
{
    public AddForm()
    {
        InitializeComponent();
    }


    Form1 from1;

    public AddForm(Form1 _from1)
    {
        InitializeComponent();
        from1 = _from1;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        //调用主窗体的方法
        from1.AddTreeNode(textBox1.Text);
        this.Close();
    }
}


欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739

评价