很难理解ownerdraw树视图,这里是完整的故事:
一个VS2013 WinForms应用程序(在Windows 8.1上运行,如果重要的话启用了TrueType),其树视图为:DrawMode = OwnerDrawText;
在表单加载中,一些节点被添加到树视图中:
private void Form1_Load(object sender, EventArgs e)
{
// add some nodes
for (int i = 0; i < 20; i++)
{
TreeNode treeNode = treeView1.Nodes.Add(new String('i', 60));
treeNode.Tag = i;
}
}
Run Code Online (Sandbox Code Playgroud)
接下来,我自己绘制每个其他节点以显示问题:
private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
// use ownerdraw every other item
if ((int)(e.Node.Tag) % 2 == 0)
{
Font font = e.Node.NodeFont;
if (font == null) font = e.Node.TreeView.Font;
e.Graphics.DrawString(e.Node.Text, font, Brushes.Red, e.Bounds.X, e.Bounds.Y);
}
else
{
e.DrawDefault …Run Code Online (Sandbox Code Playgroud)