4

我在考虑组之间的某种界限之类的。有什么方法可以将项目分成组吗?给它们上色是一种选择,但它看起来会很糟糕。

4

3 回答 3

1

您可以在组合框中插入分隔项。您可以使用显示空字符串、短划线等的项目。不幸的是,这在使用 WinForms 时通常并不容易。如果您使用的是 WPF,则可以更优雅地执行此操作。

于 2012-04-26T14:49:35.753 回答
1

所有者自己绘制很简单。派生组合,设置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);
}
于 2012-04-26T18:13:14.687 回答
0

我认为您可以覆盖元素的可视化,但这是一个复杂的解决方案。或者您可以手动插入线条(空心项目),然后您处理选择,如果它们被选中则恢复。

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

于 2012-04-26T14:44:57.800 回答