【问题标题】:Changing text of textbox on another form在另一个表单上更改文本框的文本
【发布时间】:2023-03-09 18:40:01
【问题描述】:

好吧

我有 2 种形式,我们称它们为 ma​​insecond 形式

ma​​in 上只有一个文本框(我们称之为 T1),它是 PUBLIC 所以它应该可以从任何形式访问.

第二,只有一个公共的文本框(T2)和一个按钮(pub)(称之为B

在代码中,ma​​in

中没有任何内容

的代码上有

public string s1

在按钮B的代码中:

s1 = T2.Text;
MAIN mainredirect = new MAIN();
MAIN.T1.Text = s1;

就是这样。我做错了什么?

p.s:vs没有显示错误,所以不是语法错误

【问题讨论】:

  • 您的问题缺少一些非常重要的必需信息,即您预期会发生什么以及实际发生了什么。就目前而言,我无法弄清楚您需要帮助的问题。
  • 实际发生了什么:什么都没有
  • 我想要什么:将 t2 的字符串传输到 t1
  • 调用 mainredirect.Show(),就像 @archer 建议的那样。思考你所看到的对于理解面向对象编程非常很重要。
  • 我不使用它,因为第二个表单是由 showdialog 从主表单打开的,当用户单击 B 按钮时它会关闭。主窗体始终存在。

标签: c# .net string text textbox


【解决方案1】:

不明白你想达到什么目的,但可能你忘记了简单地Show() 创建的表单。

编辑:

读过你的cmets。据我了解,您的 ma​​in 表单会像对话框一样打开 second 表单,您希望从中获取输入值。

主表单的代码是:

private void callSecondFormButton_Click(object sender, EventArgs e)
{
    SecondForm second = new SecondForm();
    second.ShowDialog();
    mainFormTextBox.Text = second.Result;
}

第二个表格:

public string Result = string.Empty;

private void secondFormCloseButton_Click(object sender, EventArgs e)
{
    Result = secondFormTextBox.Text;
    Close();
}

callSecondFormButton - 主窗体上调用第二个窗体的按钮; ma​​inFormTextBox - 主窗体上的文本框; SecondForm - 将从 main 调用的第二个表单; Result - 第二种形式的公共字段,用于检索输入文本的结果; secondFormCloseButton - 第二个表单上的按钮,用于更新结果并关闭对话框。

在主窗体中首先需要创建第二个窗体实例并显示窗体。执行ShowDialog 后,主窗体将等待关闭打开的窗体。关闭后将检索结果文本。

【讨论】:

    【解决方案2】:

    这是 WinForms 吗?很难说出你想要做什么。您是否使用调试器逐步完成?字符串设置好了吗?你怎么确认不是?是不是因为表单还没有加载?

    您只显示了 sn-ps。您应该很容易使用调试器进一步隔离它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多