有没有办法直观地划分组合框中的项目

本文关键字:项目 组合 划分 直观 有没有 | 更新日期: 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);
}
我认为

您可以覆盖元素的可视化,但这是一个复杂的解决方案。或者,您可以手动插入线条(空心项目),并处理选择,以便在选择时还原。

我认为没有任何默认解决方案。