2013-10-09 220 views
0

我尝试使ToolStripButton上的闪烁效果。通过使用Select()方法,我可以给它鼠标悬停效果,但我不知道如何将其返回到正常状态。选择/取消选择ToolStripButton

编辑:我通过在同一个ToolStip上制作一个虚拟ToolStripButton并将其大小更改为0,0来解决此问题。

bool blink = false; 

    void timer_Tick(object sender, EventArgs e) 
    { 
     blink = !blink; 
     if (blink) 
     { 
      button1.Select(); 
     } 
     else 
     { 
      dummyButton.Select(); 
     } 
    } 
+0

将焦点移到别的东西...... –

回答

0

请看到我原来的职位的解决方案。

1

而不是调用选择方法,你可以只改变背景色:

bool blink = false 
    Color originalColor; 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     originalColor = Button1.BackColor; 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     blink = !blink; 
     if (blink) 
     { 
      Button1.BackColor = Color.Aqua; 
     } 
     else 
     { 
      Button1.BackColor = originalColor; 
     } 
    } 
+0

是的,这就是我原来的一样。 – andrewfam

0

尝试使用的油漆事件:

private void ToolStripSplitButton_Paint(object sender, PaintEventArgs e) 
{ 
    VisualStyleRenderer renderer = new VisualStyleRenderer(VisualStyleElement.ToolBar.SplitButton.Checked); 
    Rectangle rectangle1 = new Rectangle(0, 0, 21, 22); 
    renderer.DrawBackground(e.Graphics, rectangle1); 
}