2011-09-29 59 views
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; 
     } 
    } 

我已經使用這個編碼來平滑移動的物體,但從未改變大小。

所以當你運行這段代碼時,盒子只是閃爍,看起來像是它試圖改變大小,但它沒有,並且循環永遠不會結束。

謝謝!

回答

0

您需要將IntegralHeight設置爲false,以便該框可以是不是項高度的倍數的高度。

對於閃爍,您應該可能包含此控件的double-buffer the form

+0

謝謝黑暗, 我加了checkedListBox1.IntegralHeight = false;進入混合,並清除它的權利。奇蹟般有效。 現在我將看到有關雙緩衝區。 –

+0

@Dark Falcon DataGridViewColumn怎麼樣?我們能否順利改變尺寸? –

+0

@DinoVelić,除了'MinimumWidth'外,對列寬沒有限制。雙緩衝仍然適用於相同的方式。 –