English 中文(简体)
扩展 System.Windows.Forms.ComboBox
原标题:
  • 时间:2008-12-27 18:18:33
  •  标签:

我想通过添加一个ReadOnly属性来扩展System.Windows.Forms.ComboBox控件,当ReadOnly=true时,该属性会显示所选项的文本(类似于标签)。(我不喜欢通过设置Enabled=false来实现禁用外观)

我怎样在winforms中做到这件事? 在ASP.NET中非常简单,只需重写Render方法。 但在winforms中似乎并不直观。

根据我所了解的,我需要......

覆盖OnPaint方法

调用 this.SetStyle(ControlStyles.UserPaint, true) 以便调用 OnPaint。

但现在似乎我必须自己完成全部的绘制工作。这是真的吗?在ReadOnly=false的情况下,不可能让基础的ComboBox处理控件绘制吗?另外,我应该使用哪些ControlStyles?

问题回答

Do what windows does.
Have just 1 item in the combobox and let it be selected and enabled.

在UserControl中放置ComboBox控件。 UserControl将通过大多数属性和事件,但是响应.ReadOnly属性,它将隐藏ComboBox控件并显示只读编辑框。





相关问题
热门标签