Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#在表单之间传递数据而不使用ShowDialog()_C#_Windows_Winforms_Visual Studio_C# 4.0 - Fatal编程技术网

C#在表单之间传递数据而不使用ShowDialog()

C#在表单之间传递数据而不使用ShowDialog(),c#,windows,winforms,visual-studio,c#-4.0,C#,Windows,Winforms,Visual Studio,C# 4.0,我有一个MainForm,里面有一个文本框和一个按钮。然后我有一个单按钮的第二个表单。在程序启动时,主窗体被初始化,当我单击按钮时,第二个窗体显示(ShowDialog())仍然保持打开主窗体 我把这两张表格放在一起打开。我想要的是,当我单击该按钮时,该按钮将向MainForm发送一个字符串。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";
    }
}