在Form中引用Label以在ElapsedEventHandler处更改颜色

时间:2016-06-30 16:15:37

标签: c#

所以在我的Form1我有一个名为lblView

的标签

我还有一个名为Timer.cs

的班级

我所拥有的地方:

public TriageTimer(int ticket_num, int alert_time_in_sec, int error_time_in_sec)
 {
            this.id = ticket_num;

            this.counter.Elapsed += new ElapsedEventHandler(this.count);
            this.counter.Interval = 1000;

            this.alert_timer.Elapsed += new ElapsedEventHandler(this.alert_sound);
            this.alert_timer.Interval = alert_time_in_sec;

            this.error_timer.Elapsed += new ElapsedEventHandler(this.error_sound);
            this.error_timer.Interval = error_time_in_sec;

            this.alert_timer.AutoReset = false;
            this.error_timer.AutoReset = false;

            this.alert_timer.Enabled = true;
            this.counter.Enabled = true;
            this.error_timer.Enabled = true;
 }

主要关注点是

this.alert_timer.Elapsed += new ElapsedEventHandler(this.alert_sound); this.error_timer.Elapsed += new ElapsedEventHandler(this.error_sound);

我尝试添加:

lblView.ForeColor = System.Drawing.Color.Green;

进入alert_sound,但我得到错误lblView在当前上下文中不存在。我已经查找了这个错误,并在stackoverflow上找到了一些解决方案,例如;在类中创建一个方法,在lbl中写一些东西,然后从表单中调用它。

但是我的问题是专门尝试让标签fontcolor在点击这些事件时发生变化(alert_sound& error_sound)所以有没有办法引用{{1}中的标签来自Form1

1 个答案:

答案 0 :(得分:0)

  

但是我得到错误lblView在当前上下文中不存在。

是,因为标签控件实例存在于您的FORM中,您必须通过该表单的引用访问它。您可以在调用该类方法时传递FORM引用,并使用该表单实例访问标签控件。此外,必须打开FORM。