逐渐或平滑地改变对象大小(Checkboxlist)?

时间:2011-09-29 16:47:32

标签: c# timer size checklistbox

C#问题

这是我想要做的。当我单击一个按钮时,我希望复选框列表从say(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;
        }
    }

我已经使用这种编码来平滑地移动物体,但从不改变尺寸。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

对于闪烁,你应该double-buffer the form包含这个控件。