我想通过添加一个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?