Results 1 to 15 of 15

Thread: [RESOLVED] timer on winform

Threaded View

  1. #10
    Angel of Code Niya's Avatar
    Join Date
    Nov 2011
    Posts
    9,017

    Re: timer on winform

    While I agree with everything jmc said, I'll still provide this incase you still want to use it.
    csharp Code:
    1. #region "BlinkLabel"
    2.  
    3. public class BlinkLabel : Label
    4. {
    5.  
    6.     private System.Windows.Forms.Timer g_objTimer = new System.Windows.Forms.Timer();
    7.     private int g_iBlinkTime = 0;
    8.     private bool g_bVisible = true;
    9.  
    10.     private bool g_bIsBlinking = false;
    11.  
    12.     private bool g_bDefaultVisible = true;
    13.  
    14.     [System.ComponentModel.DefaultValue(true)]
    15.     public new bool Visible {
    16.         get { return g_bDefaultVisible; }
    17.  
    18.         set {
    19.             g_bDefaultVisible = value;
    20.  
    21.             if (base.DesignMode == true) {
    22.                 base.Visible = true;
    23.             } else {
    24.                 base.Visible = value;
    25.             }
    26.  
    27.             if (g_bDefaultVisible == true & g_bIsBlinking == true) {
    28.                 g_objTimer.Interval = g_iBlinkTime;
    29.                 g_objTimer.Enabled = true;
    30.  
    31.                 //Remove any previous handlers
    32.                 g_objTimer.Tick -= Elapsed;
    33.                 g_objTimer.Tick += Elapsed;
    34.  
    35.             }
    36.  
    37.             if (g_bDefaultVisible == false & g_bIsBlinking == true) {
    38.                 g_objTimer.Enabled = false;
    39.                 g_objTimer.Tick -= Elapsed;
    40.  
    41.             }
    42.  
    43.  
    44.         }
    45.     }
    46.  
    47.     [System.ComponentModel.DefaultValue(0)]
    48.     public int BlinkTime {
    49.         get { return g_iBlinkTime; }
    50.  
    51.         set {
    52.             g_iBlinkTime = value;
    53.  
    54.  
    55.             if (base.DesignMode == false) {
    56.  
    57.                 if (g_iBlinkTime != 0) {
    58.                     //If the control's visible property is false
    59.                     //go into blink mode but dont show the control
    60.                     if (g_bDefaultVisible == true) {
    61.                         g_objTimer.Interval = g_iBlinkTime;
    62.                         g_objTimer.Enabled = true;
    63.  
    64.                         g_objTimer.Tick += Elapsed;
    65.                     }
    66.  
    67.                     g_bIsBlinking = true;
    68.  
    69.                 } else {
    70.                     g_objTimer.Enabled = false;
    71.                     g_objTimer.Tick -= Elapsed;
    72.                     base.Visible = g_bDefaultVisible;
    73.                     g_bIsBlinking = false;
    74.                 }
    75.             }
    76.         }
    77.     }
    78.  
    79.  
    80.     private void Elapsed(object sender, System.EventArgs e)
    81.     {
    82.         if (g_bVisible)
    83.             g_bVisible = false;
    84.         else
    85.             g_bVisible = true;
    86.  
    87.  
    88.         base.Visible = g_bVisible;
    89.     }
    90.  
    91. }
    92.  
    93. #endregion
    Its a BlinkLabel I wrote some months back for the exact same reason that you want it. I used it for a "Please wait" message while waiting for an SMO query for database instances to complete. Just use it like a normal label and set its BlinkTime property to something greater than zero for it to start blinking. I suggest 500(which is 500 milliseconds). Anything else seems too slow or too fast but then thats a matter of preference.

    Trivia: This was written in VB.Net....just used an online converter to get C# code.
    Last edited by Niya; Feb 7th, 2012 at 03:08 AM. Reason: Trivia

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width