C#在表单之间传递数据而不使用ShowDialog()
我有一个MainForm,里面有一个文本框和一个按钮。然后我有一个单按钮的第二个表单。在程序启动时,主窗体被初始化,当我单击按钮时,第二个窗体显示(C#在表单之间传递数据而不使用ShowDialog(),c#,windows,winforms,visual-studio,c#-4.0,C#,Windows,Winforms,Visual Studio,C# 4.0,我有一个MainForm,里面有一个文本框和一个按钮。然后我有一个单按钮的第二个表单。在程序启动时,主窗体被初始化,当我单击按钮时,第二个窗体显示(ShowDialog())仍然保持打开主窗体 我把这两张表格放在一起打开。我想要的是,当我单击该按钮时,该按钮将向MainForm发送一个字符串。MainForm将获取文本并将其显示在其文本框中。但是我想立即进行更改,而不需要再次隐藏和显示主窗体。有点像当按下第二个表单上的按钮时刷新它 我该怎么做 注意:发送到主表单的文本必须在第二种表单中声明。(在
ShowDialog()
)仍然保持打开主窗体
我把这两张表格放在一起打开。我想要的是,当我单击该按钮时,该按钮将向MainForm发送一个字符串。MainForm将获取文本并将其显示在其文本框中。但是我想立即进行更改,而不需要再次隐藏和显示主窗体。有点像当按下第二个表单上的按钮时刷新它
我该怎么做
注意:发送到主表单的文本必须在第二种表单中声明。(在我的程序中,文本在第二个表单级别上被动态更改)如果我理解正确,您需要在winform中创建一个属性。 例:
尝试将文本框发送到第二个表单和第二个表单的构造函数,当您单击按钮时,更改文本框的文本属性,文本框将显示为在引用同一位置时将被更新
public partial class Form1 : Form
{
public Form1(TextBox txt)
{
InitializeComponent();
this.txt = txt;
}
//variable
TextBox txt = null;
private void button1_Click(object sender, EventArgs e)
{
txt.Text = "Your text";
}
}
请参阅此链接中的答案:如果您只想在
Form1
public partial class Form1 : Form
{
public Form1(TextBox txt)
{
InitializeComponent();
this.txt = txt;
}
//variable
TextBox txt = null;
private void button1_Click(object sender, EventArgs e)
{
txt.Text = "Your text";
}
}