在表单关闭时加载表单

Fro*_*ite 0 c# forms

我有两个表单,Form1和Form2.我希望Form2在我调试程序时加载,然后在btnclickevent(在Form2中)关闭Form2并加载Form1并将文本框中的输入值导入Form1中的代码.

如果有些事情需要谨慎,请告诉我.

 private void Form1_Load(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        f2.Show();
     } 
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 6

首先显示的表单由Program.cs中的Main()方法确定.例如,你可以看起来像这样:

    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Form main;
        if (System.Diagnostics.Debugger.IsAttached) main = new Form2();
        else main = new Form1();
        Application.Run(main);
    }
Run Code Online (Sandbox Code Playgroud)

哪个仍然很难在Form2之后显示Form1,你可以这样解决它:

        if (System.Diagnostics.Debugger.IsAttached) {
            using (var debug = new Form2()) {
                if (debug.ShowDialog() != DialogResult.OK) return;
            }
        }
        Application.Run(new Form1());
Run Code Online (Sandbox Code Playgroud)

  • 我的做法不是找到自行车答案中的缺陷.我更喜欢只关注编程的非平凡部分.这包括与SO用户进行毫无意义的对话,认为他需要证明他的投票权.请利用在SE网站匿名投票的优势. (4认同)
  • +1教我"Debugger.IsAttached". (2认同)
  • 我从没想过那是问题所在.在正确的时间创建正确的表单是一个棘手的部分,将字符串传递给构造函数是您可以从任何*C#编程书中学习的东西.我没有看到重复这一点. (2认同)
  • 您是否希望我对您的答案进行投票,因为您完全忽略了仅在调试时执行此操作的要求? (2认同)
  • 不,那不是我.也许是路上的粉丝.否则又是保持匿名投票的另一个很好的理由.你完成了评论吗?请停止. (2认同)