我想在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;
}
}
我该怎么做?如何调整复选框的树视图大小?
答案 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);