Tôi đã tạo một lớp BlinkingLabel
, xuất phát từ Forms.Label
, có một số Forms.Timer
cho phép tôi bật và tắt hiệu ứng nhấp nháy.Đồng bộ hóa các nhãn nhấp nháy trong C#
Tôi đã tạo 4 nhãn loại BlinkingLabel
, vấn đề của tôi là nếu tất cả 4 nhãn nơi nhấp nháy trong các thời điểm khác nhau, hiệu ứng nhấp nháy không được đồng bộ hóa.
Làm cách nào để điều chỉnh thiết kế theo cách mà ngay cả khi các nhãn nhấp nháy vào các thời điểm khác nhau, thì nhấp nháy sẽ được đồng bộ hóa?
******* Đã chỉnh sửa ****** Tôi đã thêm mã sau đây, nhưng tôi vẫn không thể nhận được nhãn 1 và 2 để nhấp nháy cùng một lúc. Những gì đang cố gắng làm là để kiểm tra như sau: làm cho label1 nhấp nháy sau đó tôi nhấp vào nút để làm cho nhãn 2 nhấp nháy và chúng không được đồng bộ hóa.
Bất kỳ ý tưởng nào đang làm sai?
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();
}
Sử dụng một bộ hẹn giờ cho tất cả các nhãn. Bạn có thể ghi đè lên nhãn của mình để cho phép bạn kiểm soát nhấp nháy từ một lớp có thể xem/hiển thị tất cả các nhãn. Sau đó, sử dụng một bộ đếm thời gian trong lớp đó để làm cho tất cả chúng nhấp nháy. – deathismyfriend
.. bạn vẫn có thể đặt cờ trên mỗi nhãn để làm cho nó tham gia là lễ hội hay không .. – TaW
@deathismyfriend vui lòng xem mã thử nghiệm của tôi. cảm ơn bạn. – newbieLinuxCpp