【问题标题】:Get text from a textbox in one form and insert it in a textbox from other form从一种形式的文本框中获取文本并将其插入到另一种形式的文本框中
【发布时间】:2013-02-22 15:54:46
【问题描述】:

我是 C# 语言的新手,所以请放轻松。我想问的很简单,但是新手,我不知道该怎么做。

我有 2 个表格:Form1 和 Form2。 Form1 是“默认”的,即您打开应用程序时拥有的那个。我在第二种形式中有 2 个文本框和两个按钮(确定和取消)。在第一个表单中,我有一个按钮,当您单击它时会打开第二个表单和一个文本框。我试图从表格 2 中的这 2 个文本框中获取文本并将其放入来自 form1 的文本框中,但我没有设法做到这一点。我希望当我在第二个表单中单击“确定”时,将表单 2 中这两个文本框的文本放入表单 1 的文本框中,当我单击取消时,只需关闭表单 2。你能帮帮我吗?

【问题讨论】:

标签: c# forms text textbox get


【解决方案1】:

您可以在 Form2 中创建一个公共属性,该属性在您按下按钮时由 Form1 设置。

public string TextValueFromForm1 { get; set; }

在表单加载事件中,您可以将文本框的值设置为属性的值。

表格 2 示例

public class Form2 : Form
{
    private TextBox textBox1;
    private TextBox textBox2;

    public string TextValue1 { get; set; }
    public string TextValue2 { get; set; }

    public Form2()
    {
        this.Load += new EventHandler((object sender, EventArgs e) =>
        {
            textBox1.Text = TextValue1;
            textBox2.Text = TextValue2;
        });
    }
}

【讨论】:

  • 感谢您的回答!无论如何,我设法解决了它;我不知道我问的是否正确,但我就是这样做的:我在“公共部分类 Form2”中创建了一个公共字符串,它保留了这两个文本框中的文本,然后我能够从 Form1 访问它。我想我还必须说 Form1 和 Form2 类继承了 Form 类的所有内容。
【解决方案2】:

如果我理解您的问题:
- Form2 有 2 个文本框(textBox1textBox2)和 2 个按钮(btnOKbtnCancel
- 如果按下btnOK - 连接textBox1textBox2 的值并将它们传递给Form1
- 如果btnCancel 被按下 - 不要传递任何数据

我的回答的简要说明:
它可以通过事件处理程序轻松实现,只需连接到OnFormClosing 事件并从Form2 的预定义属性中读取数据

下面是一些代码来说明我的答案

Form1.cs

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm2 = new Form2();
            frm2.Show();
            frm2.FormClosing += new FormClosingEventHandler(frm2_FormClosing);
        }

        void frm2_FormClosing(object sender, FormClosingEventArgs e)
        {
            if ((sender as Form2).textData != null)
                textBox1.Text = (sender as Form2).textData;
        }
    }

Form2.cs

 public partial class Form2 : Form
    {
        public string textData;
        public Form2()
        {
            InitializeComponent();
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            textData = textBox1.Text + " " + textBox2.Text;
            this.Close();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }

【讨论】:

  • 感谢您的回答!无论如何,我设法解决了它;我不知道我问的是否正确,但我就是这样做的:我在“公共部分类 Form2”中创建了一个公共字符串,它保留了这两个文本框中的文本,然后我能够从 Form1 访问它。我想我还必须说 Form1 和 Form2 类继承了 Form 类的所有内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多