【发布时间】:2015-05-07 08:10:24
【问题描述】:
我创建了一个BlinkingLabelclass,派生自Forms.Label,它有一个Forms.Timer,允许我启用和禁用闪烁效果。
我已经创建了 4 个BlinkingLabel 类型的标签,我的问题是如果所有 4 个标签在不同时间闪烁,闪烁效果不同步。
如何调整我的设计,即使标签在不同时间闪烁,闪烁也会同步?
************已编辑****** 我添加了以下代码,但我仍然无法让标签 1 和 2 同时闪烁。我想要做的是测试以下内容:让 label1 闪烁然后我单击按钮使 label 2 闪烁并且它们不同步。
知道做错了什么吗?
public partial class UserControl1 : UserControl
{
Timer blinkTimer;
Color blinkingColor = Color.Red;
int interval = 300;
bool flag1 = false;
bool flag2 = false;
public UserControl1()
{
InitializeComponent(); // Blinking abel default values
this.blinkTimer = new Timer();
this.blinkTimer.Interval = interval; ;
this.blinkTimer.Tick += new System.EventHandler(timer_Tick);
flag1 = true;
this.blinkTimer.Start();
}
private void blinkLabels(Label label)
{
if (label.ForeColor == Color.White)
label.ForeColor = blinkingColor;
else
label.ForeColor = Color.White;
}
void timer_Tick(object sender, System.EventArgs e)
{
if(flag1 == true)
blinkLabels(label1);
if(flag2 == true)
blinkLabels(label2);
}
private void button1_Click(object sender, EventArgs e)
{
flag2 = true;
this.blinkTimer.Start();
}
【问题讨论】:
-
对所有标签使用一个计时器。您可以在标签中进行覆盖,以允许您控制可以查看/显示所有标签的类的闪烁。然后使用该类中的计时器让它们全部闪烁。
-
..您仍然可以在每个标签上设置一个标志,以使其参与庆祝活动与否..
-
@deathismyfriend 请看看我的测试代码。谢谢。
标签: c# timer label custom-controls