c#窗体调用问题,窗体调用控件数据到底怎么搞

我想设计一个有两个页面的窗体,分别为Form1和Form2,From1中有个listview控件,还有个按钮跳转显示Form2,Form2中只有几个texbox和一个按钮用来输入Form1中listview数据,结果发现输入的都是空白,两个窗体间,控件数据怎么调用呀,我看网上说,因为创建的那个form1不是原来的form1,所以才出现这个问题

整个新的form2构造函数,参数为form1类型,这样就可以访问到form1中的public方法之类的或者控件

 

实例化form2时使用新的构造函数

  

Form2

    public partial class Form2 : Form
    {
        Form1 f1;
        public Form2(Form1 f1)
        {
            this.f1 = f1;
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            f1.SetData(DateTime.Now.ToString());
        }
        public Form2()
        {
            InitializeComponent();
        }


    }

Form1


namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        public void SetData(string name)
        {
            MessageBox.Show(name);//只是简单输出内容,你可以在这里操作listview,可以给SetData增加其他参数或者传递实体类
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(this);
            f2.Show();
        }
    }
}

帮助到你能点击采纳吗,谢谢~~

大佬牛,请问这是什么原理呀,是锁定了实列化对象吗?就是点击按钮一直都是创建原来的对象?

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m