剑轩

c# winfrom跨窗体传值

电脑版发表于:2017/3/4 15:20

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



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

所以只需要在主窗体实例化子窗体的时候把自己的对象传递过去就行了,也就是传递一个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();
    }
}


关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢