mdi主窗体mainForm上有一timer控件,
Int16 logOutTime = 120;
 private void timerTxt_Tick(object sender, EventArgs e)
        {
            //会员登陆倒计时 timer触发
            if (logOutTime > 0)
            {
                logOutTime--;
                btnTime.Text = logOutTime.ToString() + "秒后退出会员";
            }
            else
            {
                timerLogOut.Stop();
                btnTime.Text = "会员登入";
            }
        }
其他窗体。form1,form2,等,还有一个登录窗体logform。
想要实现,用户在主窗体mainForm,点击菜单,要进入form1,form2等窗体时弹出登录窗体logform,如果正确登录,则激活主窗体mainForm的timer的倒计时2分钟。希望能理解。谢谢同学。

解决方案 »

  1.   


    //打开logform            _logform.ShowDialog();
                if (_logform.IsLogin)//在logform内设个public IsLogin = false变量,如果登录成功设为true
                {
                    timerLogOut.Start();
                }
      

  2.   

    把主窗体的timer设为public就可以调用了
      

  3.   

    最简单的方法传递mainform的引用给logfrom然后在logform里面登录成功后,调用time.enable就可以了,注意将timer设置为public。这样是紧耦合的,不建议这么做。
      

  4.   

    也可以用构造函数将MainForm句柄作为参数传递给Form1等其他窗体,通过窗口的句柄来操作MainForm里的控件:
    MainForm frm=(MainForm)Control.FromChildHandle(hwnd);
    Timer t=(Timer)frm.Controls["timer1"];
      

  5.   

    你这个方法只能在mainForm里用,在其他form1,form2里就不能操作mainForm的timer1控件了。
      

  6.   

    在什么地方验证正确登录?
    在验证登录的地方操作timer
      

  7.   

    在登录窗体里验证的,如果正确登录,就去操作主窗体的控件timer.enable或timer.star,但是都不可以啊。我想做的就是在 登录窗体操作主窗体的控件timer的属性或方法。仅次而已。
      

  8.   

    补充一下,我是通过form1,form2,form3,formX等窗体 调用的登录窗体,