有没有办法直观地划分组合框中的项目
本文关键字:项目 组合 划分 直观 有没有 | 更新日期: 2023-09-27 18:32:16
我在想组之间的某种界限或其他东西。有什么方法可以将项目分成几组吗?给它们上色是一种选择,但它看起来很糟糕。
您可以在组合框中插入分隔符项。您可以使用显示空字符串、短划线等的项目。不幸的是,在使用WinForms时,这通常并不容易。如果您使用的是 WPF,则可以更优雅地执行此操作。
所有者绘制自己的内容很简单。 派生组合、设置DrawMode = OwnerDrawFixed
并渲染项目:
protected override void OnDrawItem(DrawItemEventArgs e)
{
e.DrawBackground();
if( e.State == DrawItemState.Focus )
e.DrawFocusRectangle();
var item = this.Items[e.Index];
using(var brush = new SolidBrush(e.ForeColor))
{
e.Graphics.DrawString(item.ToString(), e.Font, brush, e.Bounds);
}
e.Graphics.DrawLine(SystemPens.ControlText, e.Bounds.X, e.Bounds.Y, e.Bounds.Right, e.Bounds.Y);
base.OnDrawItem(e);
}
我认为
您可以覆盖元素的可视化,但这是一个复杂的解决方案。或者,您可以手动插入线条(空心项目),并处理选择,以便在选择时还原。
我认为没有任何默认解决方案。