窗口页面中从form1中的按钮打开一个新的form2,然后在form2中会有回传数据到form1上,form1接收到后直接把数据显示在textbox上

Y L 60 信誉分
2024-07-06T09:01:11.4966667+00:00

页面传递信息,在form1上有一个类似表单的页面,按钮在页面的中间位置,点击按钮会打开form2,form2有个按钮,点击按钮把数据传递到form1上,在保留原已经填好的信息,把从form2收到的信息直接显示在textBox上,怎么实现。

Windows 窗体
Windows 窗体
一组用于开发图形用户界面的 .NET Framework 托管库。
113 个问题
C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
188 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jiale Xue - MSFT 46,466 信誉分 Microsoft 供应商
    2024-07-08T03:22:58.75+00:00

    在 C# WinForms 应用程序中,可以通过在 Form2 中定义一个事件,将数据传递回 Form1。下面是一个简单的示例,展示了如何实现这个功能:

    1. 创建一个新的 WinForms 项目,并添加两个表单(Form1 和 Form2)。
    2. 在 Form1 上添加一个按钮(button1)和一个 TextBox(textBox1)。
    3. 在 Form2 上添加一个按钮(button2)和一个 TextBox(textBox2)。

    Form1:

    using System;
    using System.Windows.Forms;
    
    namespace WinFormsApp
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form2 form2 = new Form2();
                form2.DataTransferred += new EventHandler<DataTransferredEventArgs>(Form2_DataTransferred);
                form2.Show();
            }
    
            private void Form2_DataTransferred(object sender, DataTransferredEventArgs e)
            {
                textBox1.Text = e.Data;
            }
        }
    
        public class DataTransferredEventArgs : EventArgs
        {
            public string Data { get; set; }
    
            public DataTransferredEventArgs(string data)
            {
                Data = data;
            }
        }
    }
    
    

    Form2:

    using System;
    using System.Windows.Forms;
    
    namespace WinFormsApp
    {
        public partial class Form2 : Form
        {
            public event EventHandler<DataTransferredEventArgs> DataTransferred;
    
            public Form2()
            {
                InitializeComponent();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                string data = textBox2.Text;
                OnDataTransferred(new DataTransferredEventArgs(data));
                this.Close();
            }
    
            protected virtual void OnDataTransferred(DataTransferredEventArgs e)
            {
                if (DataTransferred != null)
                    DataTransferred(this, e);
            }
        }
    }
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。