0

C# 问题

这是我想要做的。当我单击一个按钮时,我希望复选框列表的大小从 (200,10) 平滑更改为 (200,100)。我成功地让尺寸瞬间改变,但我希望它看起来很平滑。

这是我写的代码:

    private void Form1_Load(object sender, EventArgs e)
    {
        timer1.Interval = 1;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        timer1.Enabled = true;
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        if (checkedListBox1.Height < 100)
        {
            checkedListBox1.Size = new Size(checkedListBox1.Size.Width, checkedListBox1.Size.Height + 1);
        }
        else
        {
            timer1.Enabled = false;
        }
    }

我已经使用这种编码平滑地移动对象,但从不改变大小。

因此,当您运行此代码时,该框只是闪烁,似乎它试图更改大小,但它没有,并且循环永远不会结束。

谢谢!

4

1 回答 1

0

您需要将IntegralHeight设置false为该框的高度可以不是项目高度的倍数。

对于闪烁,您可能应该对包含此控件的表单进行双重缓冲。

于 2011-09-29T16:52:08.773 回答