有两个窗体 frmMainMenu、 frmStatus ,frmStatus 的 TopMost 属性为 true;
现在在frmMainMenu窗体中怎么用代码关掉frmStatus ?

解决方案 »

  1.   

    frmStatus 的 TopMost 属性为 true  你还能操作frmMainMenu吗?
      

  2.   

    main窗体中保留那些窗体的实例,然后直接close
      

  3.   

    你在frmMainMenu窗体中创建一个静态公共的的frmStatus 窗体变量,
    然后你可以在需要加载的时候创建实例,
    在需要关闭的时候直接调用这个实例close方法
      

  4.   


    //看你心急,写一个参考吧
    //Form1有一个按钮,点击就显示Form2,显示3秒就关闭Form2//Form1中button事件
            System.Windows.Forms.Timer timer=new System.Windows.Forms.Timer();
            int times = 0;
            Form2 frm = null;
            private void button1_Click_1(object sender, EventArgs e)
            {
                frm = new Form2();
                frm.WindowState = FormWindowState.Maximized;
                frm.TopMost = true;
                frm.Show();
                timer.Enabled = true;
                timer.Interval = 1000;
                timer.Start();
                timer.Tick += new EventHandler(timer_Tick);
            }                        void timer_Tick(object sender, EventArgs e)
            {
                times++;
                if (times == 3)
                {
                    frm.Close(); //关闭就这一句而已
                    timer.Stop();
                }
                
            }
      

  5.   

    若是Form2已经为显示状态呢? 你这种不行额
      

  6.   

    两种方法:
    1. 把frmStatus的对象传给frmMainMenu,然后在frmMainMenu里面直接frmStatus.close
    2. 单例frmStatus.
      

  7.   

    例子不是显示为TopMost之后再关闭的么???
    还显示了一段时间,
    你又没说具体需求只能这样写了,
    又没有万能的代码,
    你自己改一下就行了
    你只要记住一点,用哪个实例打开的,就用哪个实例关闭,
    你可以在你想要关闭的地方关闭这个窗体
      

  8.   

    引用 12 楼 akme02 的回复:
    引用 11 楼 ohkuy 的回复:
    C# code//看你心急,写一个参考吧
    //Form1有一个按钮,点击就显示Form2,显示3秒就关闭Form2//Form1中button事件
    System.Windows.Forms.Timer timer=new System.Windows.Forms.Timer();
    int times = 0;
    Form2 fr……
    ……
    若是Form2已经为显示状态呢? 你这种不行额
    例子不是显示为TopMost之后再关闭的么???
    还显示了一段时间,
    你又没说具体需求只能这样写了,
    又没有万能的代码,
    你自己改一下就行了
    你只要记住一点,用哪个实例打开的,就用哪个实例关闭,
    你可以在你想要关闭的地方关闭这个窗体引用 12 楼 akme02 的回复:
    引用 11 楼 ohkuy 的回复:
    C# code//看你心急,写一个参考吧
    //Form1有一个按钮,点击就显示Form2,显示3秒就关闭Form2//Form1中button事件
    System.Windows.Forms.Timer timer=new System.Windows.Forms.Timer();
    int times = 0;
    Form2 fr……
    ……
    若是Form2已经为显示状态呢? 你这种不行额
    例子不是显示为TopMost之后再关闭的么???
    还显示了一段时间,
    你又没说具体需求只能这样写了,
    又没有万能的代码,
    你自己改一下就行了
    你只要记住一点,用哪个实例打开的,就用哪个实例关闭,
    你可以在你想要关闭的地方关闭这个窗体引用 12 楼 akme02 的回复:
    引用 11 楼 ohkuy 的回复:
    C# code//看你心急,写一个参考吧
    //Form1有一个按钮,点击就显示Form2,显示3秒就关闭Form2//Form1中button事件
    System.Windows.Forms.Timer timer=new System.Windows.Forms.Timer();
    int times = 0;
    Form2 fr……
    ……
    若是Form2已经为显示状态呢? 你这种不行额
    例子不是显示为TopMost之后再关闭的么???
    还显示了一段时间,
    你又没说具体需求只能这样写了,
    又没有万能的代码,
    你自己改一下就行了
    你只要记住一点,用哪个实例打开的,就用哪个实例关闭,
    你可以在你想要关闭的地方关闭这个窗体引用 12 楼 akme02 的回复:
    引用 11 楼 ohkuy 的回复:
    C# code//看你心急,写一个参考吧
    //Form1有一个按钮,点击就显示Form2,显示3秒就关闭Form2//Form1中button事件
    System.Windows.Forms.Timer timer=new System.Windows.Forms.Timer();
    int times = 0;
    Form2 fr……
    ……
    若是Form2已经为显示状态呢? 你这种不行额
    例子不是显示为TopMost之后再关闭的么???
    还显示了一段时间,
    你又没说具体需求只能这样写了,
    又没有万能的代码,
    你自己改一下就行了
    你只要记住一点,用哪个实例打开的,就用哪个实例关闭,
    你可以在你想要关闭的地方关闭这个窗体