突出显示组合框中的特定项目
我有一个场景,我用模板名称填充组合框。 在这些模板中,有一个是默认模板。 我想在填充组合框时突出显示默认模板名称(以便用户知道其中哪一项是默认的)。 可以这样做吗? 如果是的话怎么办? 我正在使用 C# 2.0 中的 Windows 窗体。
I have a scenario where I am populating a combo box with the template names. Amongst the templates one would be a default template. I want to highlight the default template name when I populate the combo box (so that the user knows which one among the items is the default). Is it possible to do so? If yes how? I am using a Windows Form in C# 2.0.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这在一定程度上取决于您想要如何突出显示该项目。 如果您想以粗体呈现默认项目的文本,您可以像这样实现(为此,您需要将 ComboBox 的
DrawMode
设置为OwnerDrawFixed
,当然,将 DrawItem 事件连接到事件处理程序):我已经用模板对象填充了组合框,定义如下:
...DrawItem 事件的实现如下:
这应该让您朝着正确的方向前进,我希望。
It depends a bit on how you want to hightlight the item. If you want to render the text of the default item in bold, you can achieve that like this (for this to work you need to set the
DrawMode
of the ComboBox toOwnerDrawFixed
, and of course hook up the DrawItem event to the event handler):I have populated the combobox with Template objects, defined like this:
...and the DrawItem event is implemented like this:
That should get you going in the right direction, I hope.
设置组合框的DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable。 和,
重写 Combobox_MeasureItem() 和 Combobox_DrawItem() 方法来实现此目的。
Set combo box's DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable. And,
Override Combobox_MeasureItem() and Combobox_DrawItem() methods, to achieve this.