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");
        }
    }
}
相关推荐
唐青枫1 天前
别再乱用 StartNew:C#.NET TaskFactory 任务调度实战详解
c#·.net
Artech1 天前
[MAF预定义的AIContextProvider-03]ChatHistoryMemoryProvider——赋予Agent从经验中学习的能力
ai·c#·agent·memory·maf
Scout-leaf3 天前
C#摸鱼实录——IoC与DI案例详解
c#
咕白m6253 天前
使用 C# 在 Excel 中应用多种字体样式
后端·c#
Artech3 天前
[MAF预定义的AIContextProvider-02]AgentSkillsProvider——将Agent Skills引入MAF
ai·c#·agent·agent skills·maf
LDR0064 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术4 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园4 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob4 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享4 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm