如何从另一个面板内的另一个窗体更改面板内的TextBox文本

时间:2018-02-09 15:55:18

标签: c# winforms textbox panel

我正在处理我的第一个应用程序,我正在使用带有c#语言的VS2017。

我正在努力尝试从另一个表单更改面板内的文本框文本。 我有一个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”。 我在这个问题上被困了几个小时,非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您正在创建新实例并进行更改。你需要改变另一个。这是对它应该如何工作的粗略测试。

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

这是一个快速的写作,未经测试,但它应该适用于您所需的。

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