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");
        }
    }
}
相关推荐
豆瓣鸡4 小时前
算法日记 - Day3
java·开发语言·算法
凯丨4 小时前
AI 蠕虫来了:恶意文档如何通过 Copilot for Word 自我传播?
人工智能·c#·copilot
韭菜炒鸡肝天4 小时前
VTK开发笔记(一):VTK介绍,Qt..+VSx+VTK.编译
开发语言·笔记·qt
Aaron - Wistron5 小时前
Web API C# (Furion版)带 单元测试
开发语言·后端·c#
Dxy12393102166 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
0566467 小时前
Python康复训练——常用标准库
开发语言·python·学习
骊城英雄7 小时前
基于C#+avalonia ui实现的跨平台点胶机灌胶监控控制上位机软件
开发语言·ui·c#
吾儿良辰7 小时前
一个被BCL遗忘的高性能集合:C# CircularBuffer<T>深度解析
开发语言·windows·c#
哎呦喂我去去去7 小时前
C#实现屏幕墙:同时监控多个电脑桌面(支持Windows、信创Linux、银河麒麟、统信UOS)
linux·windows·c#
昆曲之源_娄江河畔7 小时前
Python如何安装flask, pymssql
开发语言·python·flask·pymssql