C#程序,窗体1向窗体2的textbox控件写入字符串“hello”

步骤1:创建窗体2(Form2)

在Form2中:

  • 添加一个TextBox控件(命名为 textBox1

  • 将它的 Modifiers 属性设置为 PublicInternal(这样窗体1才能访问它)

cs 复制代码
// Form2.cs
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }
}

设计器中

  • 选中 textBox1

  • 在属性窗口中找到 Modifiers

  • 将其改为 Public

步骤2:在窗体1中调用

假设窗体1中有一个按钮 button1,点击后打开Form2并写入文本。

cs 复制代码
// Form1.cs
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // 创建窗体2的实例
        Form2 form2 = new Form2();

        // 先显示窗体2
        form2.Show();

        // 向窗体2中的TextBox写入字符串
        form2.textBox1.Text = "hello";
    }
}

完整代码(无需修改Modifiers的另一种方式)

如果你不想把TextBox设为Public,可以在Form2中写一个公共方法

cs 复制代码
// Form2.cs
public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    // 公共方法,供其他窗体调用
    public void SetTextBoxText(string text)
    {
        textBox1.Text = text;
    }
}

然后在Form1中调用:

cs 复制代码
private void button1_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    form2.Show();
    form2.SetTextBoxText("hello");
}

如果Form2已经打开,想向它已存在的实例写入数据

如果Form2已经打开,需要在Form1中保存对它的引用:

cs 复制代码
// Form1.cs
public partial class Form1 : Form
{
    private Form2 form2;  // 保存引用

    private void buttonOpenForm2_Click(object sender, EventArgs e)
    {
        if (form2 == null || form2.IsDisposed)
        {
            form2 = new Form2();
            form2.Show();
        }
        else
        {
            form2.Focus();
        }
    }

    private void buttonWriteHello_Click(object sender, EventArgs e)
    {
        if (form2 != null && !form2.IsDisposed)
        {
            form2.SetTextBoxText("hello");
        }
        else
        {
            MessageBox.Show("请先打开窗体2");
        }
    }
}
相关推荐
郝学胜-神的一滴41 分钟前
Effective Python 条款 10 :海象运算符_=
开发语言·python·程序人生·开源
wuyk55543 分钟前
Python零基础入门第十四章:异常处理(try-except)
开发语言·python
wuyk5551 小时前
【Socket 进阶之路】第 3 章 TCP 三次握手 & 四次挥手深度剖析|连接建立、断开、状态机、TIME_WAIT 核心工程问题
服务器·开发语言·网络·物联网·网络协议·tcp/ip
彧azz6 小时前
图的存储结构详解:邻接矩阵的原理、实现与应用
开发语言·数据结构·学习·php
嵌入式学习菌7 小时前
Modbus‑RTU 数据类型分析
开发语言·单片机·bug
matlab代码8 小时前
基于matlab数字图像处理的指纹识别系统【源码68期】
开发语言·matlab
matlab代码8 小时前
基于matlab的水果识别系统(苹果香蕉菠萝梨桃子)【源码65期】
开发语言·matlab
wuyk5559 小时前
从零吃透 MQTT 通信|第 8 章 FreeRTOS 多任务架构下 MQTT 工程架构,任务拆分、队列解耦、临界区保护
c语言·开发语言·stm32·学习·架构
weixin199701080169 小时前
[特殊字符]《跨境二手ERP对接Back Market:标准化API + 7~10工作日技术合规审核实录》(附Python源码)
开发语言·python·pandas
尘客-追梦9 小时前
Day 01:插件化之前,先看清 ABI 这堵墙
开发语言·c++·qt