【发布时间】:2013-12-17 13:20:24
【问题描述】:
我想改进我的绘图,以便在调整列大小时写入默认窗口 Listview 在每个子项字符串末尾绘制的 ... 字符,就像您在此视频中看到的那样:
http://www.youtube.com/watch?v=J8LghvmLB4E
这是我用来绘制子项的代码:
Dim bounds As Rectangle = e.Bounds
bounds.X += 5
bounds.Width -= 5
Select Case e.Header.TextAlign
Case HorizontalAlignment.Left
TextRenderer.DrawText(e.Graphics, e.SubItem.Text, e.SubItem.Font,
bounds, e.SubItem.ForeColor,
TextFormatFlags.Left)
Case HorizontalAlignment.Center
TextRenderer.DrawText(e.Graphics, e.SubItem.Text, e.SubItem.Font,
bounds, e.SubItem.ForeColor,
TextFormatFlags.GlyphOverhangPadding Or TextFormatFlags.HorizontalCenter)
Case HorizontalAlignment.Right
TextRenderer.DrawText(e.Graphics, e.SubItem.Text, e.SubItem.Font,
bounds, e.SubItem.ForeColor,
TextFormatFlags.Right)
End Select
【问题讨论】:
-
我很高兴看到您浪费大量时间尝试重新发明轮子,只是因为您没有注意我关于使用 WPF 的建议(它已经内置了所有这些功能)
-
他们到底有什么问题?默认的 Windows 方法是如何不足的?
-
@HighCore 非常感谢您的讽刺?但我不知道 XAML。在 WPF 中,它的功能名称是什么?
-
@Plutonix 调整列大小时,默认列表框会写一些点“...”...我自己的列表视图不这样做,因为我不知道如何重现该技术。跨度>
-
@elektrostudios 这不是讽刺,我是 100% 认真的。自从你开始这个项目以来,我一直在告诉你使用 WPF,现在你被一堆可怕的不可移植、不可自定义、不可扩展的 winforms hack 所困扰。如果您不知道某些东西,例如 XAML,您可以完美地学习它。这不是不可能的,而且比 hack 背后的任何 winforms 程序代码都要好。
标签: .net vb.net winforms listview user-controls