2009-08-07 94 views

回答

3

使用StateImageListTreeNode.StateImageIndex上述目的使用該框。當用戶點擊狀態圖像時,您還需要訂閱MouseDown事件並更改檢查狀態(狀態圖像)。通過使用這種方法,您也可以模擬三態複選框。

實際上,內部的TreeView實現實際上使用相同的方法,但是這對你是隱藏的。

private Image CreateCheckBoxGlyph(CheckBoxState state) 
{ 
    Bitmap Result = new Bitmap(imlCheck.ImageSize.Width, imlCheck.ImageSize.Height); 
    using (Graphics g = Graphics.FromImage(Result)) 
    { 
     Size GlyphSize = CheckBoxRenderer.GetGlyphSize(g, state); 
     CheckBoxRenderer.DrawCheckBox(g, 
      new Point((Result.Width - GlyphSize.Width)/2, (Result.Height - GlyphSize.Height)/2), state); 
    } 
    return Result; 
} 
0

我放棄了TreeView,因爲它是有限的和越野車。

你應該能夠得到這種行爲了使用開源TreeViewAdv

+2

你在TreeView中遇到什麼錯誤:

用於創建基於CheckBoxState的ImageList中圖像的方法? – 2009-08-07 21:14:08

+0

實際上,本機TreeView功能非常強大,但是您需要進行多次檢查,因爲TreeView在每個新的Windows版本中都會演變並獲得新功能。 .Net樹視圖包裝器不會使用所有的TreeView潛能,並且對於許多您需要繼承的高級功能。 – arbiter 2009-08-07 21:40:19

+0

這已經有一段時間了,但我記得的一個錯誤是在某些情況下不會發射的事件。 – 2009-08-07 22:46:58