在form2中调用form1中的方法并改变form1中控件值的另一种方法

在窗体编程中,经常碰到到要在form2中调用form1中的方法并改变form1中控件值,但是又不能用new form1这种方法,因为这是生成一个实例。

网上有些说法是用委托和事件,笔者尝试没有成功,可能是功力不够,但笔者用另一种方法实现 了同样的效果。

首先,重载form2的构造函数,在form1调用form2的时候将form1本身作为参数传入form2,这时,form2作为一个引用传到了form2,并用一个from1型的变量f1接收。这时就可以用f1来调用修改form1的方法和控件值了。具体代码如下:

Form1.cs:

 

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

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

        #region 往textbox1中入数据
        public void WriteTextbox1(string str)
        {
            textBox1.Text = str;
        }
        #endregion
    }


 

Form2.cs:

 public partial class Form2 : Form
    {
        private Form1 f1;
        public Form2()
        {
            InitializeComponent();
        }
        public Form2(Form1 f)
        {
            InitializeComponent();
            f1 = f;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //将textbox1中的值写入form1中的textbox1中
            f1.WriteTextbox1(textBox1.Text);
        }
    }


 

 

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值