如何在treeview中更改复选框的默认图形大小?

时间:2014-08-14 09:33:23

标签: .net winforms treeview c#-2.0

我想在Windows窗体控件中使用treeview进行自定义bigger checkboxes,以便在触摸屏上轻松操作。但树视图中复选框控件的默认图形大小为16x16。我为复选框创建了新的位图32x32,但结果不符合预期。

public TriStateTreeView() : base()
        {
         CheckBoxState cbsState;
         Graphics gfxCheckBox;
         Bitmap bmpCheckBox;

            _ilStateImages = new ImageList();
            cbsState = CheckBoxState.UncheckedNormal;

            for (int i = 0; i <= 2; i++) {
                bmpCheckBox = new Bitmap(32, 32);
                gfxCheckBox = Graphics.FromImage(bmpCheckBox);
                switch (i) {
                    case 0: cbsState = CheckBoxState.UncheckedNormal; break;
                    case 1: cbsState = CheckBoxState.CheckedNormal; break;
                    case 2: cbsState = CheckBoxState.MixedNormal; break;
                }
                CheckBoxRenderer.DrawCheckBox(gfxCheckBox, new Point(0, 0), cbsState);
                gfxCheckBox.Save();
                _ilStateImages.Images.Add(bmpCheckBox);
                _bUseTriState = true;
            }
        }

我该怎么做?如何调整复选框的树视图大小?

1 个答案:

答案 0 :(得分:1)

树形视图中的复选框只是粘贴到表单的图像,它们不是具有所有功能的真实复选框(例如,您不具有本机三态模式)。

您可以通过设置TreeView.StateImageList property来更改树视图复选框的图像。

  

StateImageList获取或设置图像列表,用于指示TreeView及其节点(MSDN)的状态

// Create the StateImageList and add two images.
checkTreeView.StateImageList = new ImageList();
checkTreeView.StateImageList.Images.Add(SystemIcons.Question);
checkTreeView.StateImageList.Images.Add(SystemIcons.Exclamation);