C# 从其他形式返回

C# 从其他形式返回,c#,visual-studio,C#,Visual Studio,我使用了这段代码,这样我就可以从表1到表2获取数据,现在就可以了。我很难从中三回到中二 public string _FNAME = string.Empty; //global variable public Form2(string FNAME) //parameter { InitializeComponent(); _rdbtnSpecial.Hide(); _rdbtnSharing.Hide();

我使用了这段代码,这样我就可以从表1到表2获取数据,现在就可以了。我很难从中三回到中二

    public string _FNAME = string.Empty;  //global variable
    public Form2(string FNAME) //parameter
    {
        InitializeComponent();
        _rdbtnSpecial.Hide();
        _rdbtnSharing.Hide();

        _FNAME = FNAME;   // for data calling
我应该在代码中添加什么,以便我可以从表3返回到表2?
谢谢:)

我想我找到了你的问题。这是一个简单的打字错误

替换

Form2 _form2 = new Form2()
this.Show();


如果您也想恢复FNAME,请在下面发表评论,我也会解释。

我想我发现了您的问题。这是一个简单的打字错误

替换

Form2 _form2 = new Form2()
this.Show();


如果您还想恢复FNAME,请在下面发表评论,我也会解释。

我的建议是使用
ShowDialog
功能。您可以这样使用它:

表格2:

Form2 _form2 = new Form2();
_form2.Show();
现在,在Form3中,您可以创建一个返回您想要的任何内容的方法:

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        using (var loadingScreen = new Form3())
        {
            var formResult = loadingScreen.ShowDialog();
            if (formResult == DialogResult.Cancel)
            {
                // form3 failed
            }
            else if (dr == DialogResult.OK)
            {
                // form3 completed
            }

            loadingScreen.Close();
        }
    }
}

我的建议是使用
ShowDialog
功能。您可以这样使用它:

表格2:

Form2 _form2 = new Form2();
_form2.Show();
现在,在Form3中,您可以创建一个返回您想要的任何内容的方法:

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        using (var loadingScreen = new Form3())
        {
            var formResult = loadingScreen.ShowDialog();
            if (formResult == DialogResult.Cancel)
            {
                // form3 failed
            }
            else if (dr == DialogResult.OK)
            {
                // form3 completed
            }

            loadingScreen.Close();
        }
    }
}


Form3
中,您还必须知道
FNAME
,这样您就可以将其传递回
Form2
您是什么意思,先生?你能给我举个例子吗?我很难理解你的问题:你说的这个表格在哪里?你说的“返回中二”是什么意思?重新打开一个封闭的表单?请注意,Form2需要一个字符串参数,而您在尝试创建它时不提供该参数。你说的“困难时期”是什么意思?没有编译,没有正确运行?嗯,简单地说,我有一个预订系统,其中form2具有预订功能,form3将启动加载。。当form3为100%时,它将返回。将FNAME传递给form3,并从form3传递回form2。您有从form1传递到form2的代码您可以使用相同的代码。在
Form3
中,您还必须知道
FNAME
,以便您可以将其传递回
form2
先生,这是什么意思?你能给我举个例子吗?我很难理解你的问题:你说的这个表格在哪里?你说的“返回中二”是什么意思?重新打开一个封闭的表单?请注意,Form2需要一个字符串参数,而您在尝试创建它时不提供该参数。你说的“困难时期”是什么意思?没有编译,没有正确运行?嗯,简单地说,我有一个预订系统,其中form2具有预订功能,form3将启动加载。。当form3为100%时,它将返回。将FNAME传递给form3,并从form3传递回form2。您有从form1传递到form2的代码,您可以使用相同的代码进行传递;尝试
newform2(“”)我还想恢复FNAME,然后您必须将FNAME通过
新表单3(FNAME)
传递到表单3,然后代替
新表单2(“”)
在表单3中,使用
新表单2(FNAME)
。这样,您将FNAME传递到Form3,然后返回到Form2,或者更简单地说,您恢复了FNAME。我这样做了,但新Form2()上仍然有一个红色标记;尝试
newform2(“”)我还想恢复FNAME,然后您必须将FNAME通过
新表单3(FNAME)
传递到表单3,然后代替
新表单2(“”)
在表单3中,使用
新表单2(FNAME)
。这样,你把FNAME传给Form3,然后又传回到Form2,或者说更简单一点,你恢复了FNAME实际上在Form3中没有什么可以返回的,因为它只是一个加载屏幕啊,对不起,我的错误。我已经相应地更新了代码示例。实际上,先生,在表格3中,没有什么可以返回的,因为它只是一个加载屏幕。啊,对不起,我的错误。我已经相应地更新了代码示例。