【问题标题】:how to change a TextBox text inside a panel from another form that is inside another panel如何从另一个面板内的另一个表单更改面板内的 TextBox 文本
【发布时间】:2018-02-09 15:55:18
【问题描述】:

我正在开发我的第一个应用程序,我正在使用 VS2017 和 c# 语言。

我正在努力从另一个表单更改面板内的文本框文本,但没有成功。 我有一个有两个面板的 Main_Form。 第一个面板是我的“Main_Panel”,我用它来展示许多其他形式。 第二个面板是我的“Info_Panel”,它包含一个用于打印 DateTime 的文本框,以及另一个包含 Main_Panel 中实际表单标题的 title_textbox。 到目前为止,我在 Some_Form_load 中尝试了这个程序:

     private void Some_Form_Load(object sender, EventArgs e) 
     {
       MainForm f1 = new MainForm();
       f1.Title_Textbox.Text = "Some_Form";
     }

但什么也没发生,可能是因为我的 title_textbox 是我的“Info_Panel”。 我在这个问题上被困了几个小时,非常感谢您的帮助。

【问题讨论】:

  • 您正在更改您从未显示的全新MainFormTextBox。您需要将f1 更改为已打开的MainForm 或更改f1.ShowDialog();
  • @CamiloTerevinto,我试过了,它正在加载整个 MainForm,而不是只实现包含我的文本框的 Info_Panel。

标签: c# winforms textbox panel


【解决方案1】:

您正在创建一个新实例并对其进行更改。你需要改变你的另一个。这是对其工作方式的粗略测试。

 private void Some_Form_Load(object sender, EventArgs e) 
 {
   MainForm f1 = Application.OpenForms.OfType<MainFrm>().FirstOrDefault();
   f1?.Title_Textbox.Text = "Some_Form";
 }

这是一篇简短的文章,未经测试,但它应该可以满足您的需求。

编辑:这只是在打开的应用程序列表中获取所有 MainFrm,然后选择第一个。然后它将它存储在一个变量中,您可以引用该变量来获取您需要的表单:)

【讨论】:

  • 我在 ofType() 中遇到错误。我应该写“ofType(MainForm) 是吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 2013-10-28
相关资源
最近更新 更多