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");
        }
    }
}
相关推荐
caimouse1 小时前
ReactOS 窗口系统分析(23):键盘 — keyboard.c + kbdlayout.c
c语言·开发语言·计算机外设
Emily156853598701 小时前
Emerson 1C31129G03 Analog Input Module
java·开发语言·前端·plc·emerson·1c31129g03·input module
就叫_这个吧6 小时前
Java递归方法实现面包屑导航
java·开发语言
fīɡЙtīиɡ ℡6 小时前
AI 应用系统设计
java·开发语言·人工智能
csdn_aspnet8 小时前
C# 在逗号分割的字符串中判断是否包含指定字符
c#·正则·linq·string·regex·contains
今天AI了吗8 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
宝桥南山8 小时前
Blazor Web Assembly - 体验一下Authentication State从Server共享给Client
microsoft·微软·c#·asp.net·.net·.netcore
TELL5219 小时前
selenium webdriver 第二次初始化的异常
开发语言·python
动词ing9 小时前
【C语言】自定义函数+指针入门
c语言·开发语言·算法
重生之后端学习9 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展