无法检索用户的文本框输入

Can't retrieve user's TextBox input

我有一个包含两个表单的程序:

表格 1 有一个 TextBox 和一个 Button。 Form2 有一个 DataGridView.

然后我有一个 class 和一个接受字符串作为参数的构造函数:

public SymbolData(string symbol)
{ /* Do stuff */ }

当用户单击按钮时,DataGridView 显示 SymbolData 中定义的 table 中的数据。

我的问题是,当我单击按钮时,从文本框中检索到的字符串是我在其文本 属性 中插入的字符串,而不管在 TextBox 中插入的是什么 当程序在此处输入代码时是 运行

这里是我创建 SymbolData 实例的地方:

    public Form2()
    {
        InitializeComponent();
        SymbolData sd = new SymbolData(f1.textButton1.Text);

        dataGridView1.DataSource = sd.Table;
    }

当我调用 SymbolData 对象的构造函数时,任何人都可以帮助我传递来自 TextBox 的用户输入吗?

您可以通过多种方式进行,但大多数方式都需要创建一个事件。您可以在窗体上创建一个按钮,当您双击它时会创建一个点击事件。然后您就可以通过这种方式传递文本。

private void button1_Click(object sender, EventArgs e)
    {
            SymbolData sd = new SymbolData(f1.textButton1.Text);
    }

您还可以在文本框上创建一个事件,例如Keypress、keyup、keydown,您可以在文本框的属性中找到这些事件,然后单击面板顶部的闪电图标即可查看这些事件.

如果你真的想在 Form2 中实例化 SymbolData 那么让你的 form2 构造函数接受一个字符串参数并将该参数传递给 SymbolData 构造函数,如下所示

public Form2(string form1data)
{
    InitializeComponent();
    SymbolData sd = new SymbolData(form1data);
    dataGridView1.DataSource = sd.Table;
}

然后在您的 Form1 按钮单击事件中获取 Form2 的实例并传递文本框数据

protected void btn1_Click(object sender, EventArgs e)
{
  Form2 frm2 = new Form2(this.textButton1.Text.Trim());
  frm2.Showdialog();
}