【问题标题】:Start timer from another form从另一种形式启动计时器
【发布时间】:2012-09-22 14:51:07
【问题描述】:

在我的项目中,我有两种形式 mainFormtestingForm。 在mainForm 我有button1,在testingForm 我有:

Stopwatch measure = new Stopwatch();

当用户单击button1 时,我希望measure 秒表启动,并使用它进行其他事件。我怎样才能做到这一点?我研究了很多,但没有任何帮助......

【问题讨论】:

  • 主窗体上没有秒表有什么具体原因
  • 是的。但如果这对你没有帮助,我不想写更多细节,因为它只是一个小应用程序,可以帮助我测量一些数据。

标签: c# winforms events stopwatch


【解决方案1】:

使秒表成为测试表单的属性。单击按钮时,您在 mainform 中创建新的秒表,然后将其分配给 testingform 属性

测试表单代码

 private Stopwatch _Measure;
        public Stopwatch Measure
        {
            get
            {
                return _Measure;
            } 
            set 
            { _Measure = value;
                // Do some stuff
            }
        }

主窗体代码

 private void button1_Click(object sender, EventArgs e)
        {
            Stopwatch measure = new Stopwatch();
            testingform.Measure = measure;
        }

【讨论】:

    【解决方案2】:

    您可以将计时器置于mainFormtestingForm 都可以使用它的范围内,也许是在应用程序级别。

    【讨论】:

    • 我认为这会有所帮助,但您能给我更多的指示吗?
    • 不要让你的计时器成为其中一个表单的成员,而是让它成为应用程序类的成员,或者两个表单都可以访问和使用计时器的某个类。
    【解决方案3】:

    在测试表格中

    Stopwatch measure = new Stopwatch();
    
    public Stopwatch Watch { get { return measure; } }
    

    在主窗体中

    testingForm frm = new testingForm();
    frm.Watch.Start();
    //...
    frm.Watch.Stop();
    

    【讨论】:

      【解决方案4】:

      假设您希望主窗体包含和控制程序的所有方面(秒表或任何相关的东西),您可以关注this example

      您唯一需要更改的是将秒表设置为 MainForm 的属性并让 Form2 通过引用调用该操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-06
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 2015-06-23
        相关资源
        最近更新 更多