0

我尝试在 ToolStripButton 上制作闪烁效果。通过使用 Select() 方法,我可以给它鼠标悬停效果,但我不知道如何让它恢复到正常状态。

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

    bool blink = false;

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

3 回答 3

1

您可以更改背景颜色,而不是调用 Select 方法:

    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;
        }
    }   
于 2013-10-09T07:02:56.830 回答
0

请参阅我的原始帖子中的解决方案。

于 2013-10-10T16:03:55.500 回答
0

尝试使用 Paint-Event:

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);
}
于 2013-11-19T08:54:42.683 回答