c#中跨窗体调用控件

本文介绍了如何在C#中处理跨窗体控件调用的问题,强调了由于跨线程操作的限制,不能直接调用。通过详细步骤,展示了利用委托来实现在Form2中点击按钮改变Form1中TextBox文本的方法,包括声明委托、实例化、定义方法、注册方法和执行委托等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

跨窗体相当于跨线程了,并不能直接调用

可以利用委托来实现

现在有两个窗体,form1和form2,form1中有一个textbox,form2中有一个button,要实现的功能是按下按钮改变textbox里的text

实现方法:

1.首先声明一个全局委托, public delegate void SetText();

2.在form2中实例化该委托:public SetText setText;

3.在form1中添加改变textbox里text的方法,

pubic void ChangeText()

{

textBox.Text = "变了吧!";

}

4.在form1中将上诉方法注册到form2中的委托实例

f2.setText += new SetText(ChangeText);

5. 在f2中运行委托实例。

 以上5步的执行顺序不能错,要是没注册方法就执行委托,那必然是会出错的

form1代码:

 

using System;
using System.Windows.Forms;

namespace test
{
    //定义一个全局委托
    public delegate void SetText();

    public partial class Form1 : Form
    {
        Form2 f2 = new Form2();       
        public Form1()
        {
            InitializeComponent();
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值