gpt4 book ai didi

c# - TreeView 事件 DrawNode 未触发

转载 作者:太空宇宙 更新时间:2023-11-03 21:43:52 24 4
gpt4 key购买 nike

即使所选项目未获得焦点,我也想更改 TreeView 中所选项目的颜色。为此,我正在使用 DrawoNode mothed。但是我的 DrawNode 事件没有触发。可能是什么问题呢?这是我的代码:

SolidBrush greenBrush = new SolidBrush(Color.Green);
SolidBrush redBrush = new SolidBrush(Color.Red);

private void tvVouchers_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
if (e.Node.IsSelected)
{
if (tvVouchers.Focused)
e.Graphics.FillRectangle(greenBrush, e.Bounds);
else
e.Graphics.FillRectangle(redBrush, e.Bounds);
}
else
e.Graphics.FillRectangle(Brushes.White, e.Bounds);

e.Graphics.DrawRectangle(SystemPens.Control, e.Bounds);

TextRenderer.DrawText(e.Graphics,
e.Node.Text,
e.Node.TreeView.Font,
e.Node.Bounds,
e.Node.ForeColor);
}

最佳答案

确保 DrawNode 属性设置为 OwnerDrawText 或 OwnerDrawAll,然后事件将被触发。

OnwerDrawText: 'TreeNode 标签区域可以自定义。所有其他 TreeNode 元素都是自动绘制的。OwnerDrawAll: '可以自定义整个TreeNode的外观。如果需要,必须手动绘制图标、复选框、加号和减号以及连接节点的线。”

关于c# - TreeView 事件 DrawNode 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18029922/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com