我知道这听起来可能很基础,但作为一个初学者,我对以下几点感到困惑:
我有两个表单,第一个是进行所有连接和计算的表单,第二个是显示所有结果的表单。
FORM1,在这里我调用打开第二个窗体.
private void button_Click1(object sender, EventArgs e)
{
Button selected = sender as Button;
openClientForm(new Form2());
}
private Form activeForm = null;
private void openClientForm( Form clientForm)
{
if (activeForm != null)
activeForm.Close();
activeForm = clientForm;
clientForm.TopLevel = false;
clientForm.FormBorderStyle = FormBorderStyle.None;
clientForm.Dock = DockStyle.Fill;
panelClientForm.Controls.Add(clientForm);
panelClientForm.Tag = clientForm;
clientForm.BringToFront();
clientForm.Show();
}
表格2)
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
//Form2_Load();
updateText(txtCmdConsole, Form1.cmdres);
}
private void updateText(TextBox text, string strdata)
{
text.AppendText(strdata);
}
}
我有一个问题。
1.当我打开第二个窗体时,我如何运行窗体1中的方法updateText
并在第二个窗体中显示结果?我问这个问题的原因是form1
应该仍然在后台运行,如果满足某个条件,我希望update text
在窗体1中运行(从那里获取值)并更新第二个窗体。
1条答案
按热度按时间bqujaahr1#
首先,你的
activeForm
应该是Form2类型,而不仅仅是Form
,否则你不能从它调用特定的方法(至少不容易)。然后,Form2可以提供一个公共接口来从外部更新某些文本,使用不期望内部控件作为参数的方法。
现在,您可以在Form1中的任何位置调用此方法:
希望这个有用。