如何从另一个面板内的另一个表单更改面板内的 TextBox 文本

how to change a TextBox text inside a panel from another form that is inside another panel

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

我正在努力尝试从另一个表单更改面板内的文本框文本,但没有成功。 我有一个有两个面板的 Main_Form。 第一个面板是我的 "Main_Panel",我用它来显示很多其他形式。 第二个面板是我的 "Info_Panel",它包含一个用于打印日期时间的文本框,另一个 title_textbox 包含我的 Main_Panel 中实际表格的标题。 到目前为止,我在 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"。 我在这个问题上被困了几个小时,非常感谢您的帮助。

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

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

这是一篇快速撰写的文章,未经测试,但它应该可以满足您的需要。

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