关于重写textbox的问题,也就是说想实现在textbox控件在enabled=false或者readonly=true的时候,让背景色也是白色的,而不是灰色的。
尝试着继承textbox,然后setstyle,设置自己来绘制,在onpaint中做了处理。但控件在获得光标后的字体却明显的变大了,与textbox控件比较起来差异很明显,不解为何?
请各位朋友多多指教解决的方法!谢谢!

解决方案 »

  1.   

    这个只要改改TEXTBOX的属性就能轻松办到啊!!
      

  2.   

    用不着重写吧if(this.textBox1.ReadOnly)
    this.textBox1.BackColor = Color.White;
      

  3.   

    可以直接写textBox的ReadOnlyChanged`和EnabledChanged事件private void textBox1_ReadOnlyChanged(object sender, System.EventArgs e)
    {
    this.textBox1.BackColor = Color.White;
    } private void textBox1_EnabledChanged(object sender, System.EventArgs e)
    {
    this.textBox1.BackColor = Color.White;
    }
      

  4.   

    也可以继承TextBox, 重写OnReadOnlyChanged和OnEnabledChanged public class MyTextBox : System.Windows.Forms.TextBox
    {
    protected override void OnReadOnlyChanged(EventArgs e)
    {
    base.OnReadOnlyChanged (e);
    this.BackColor = Color.White;
    } protected override void OnEnabledChanged (EventArgs e)
    {
    base.OnEnabledChanged(e);
    this.BackColor = Color.White;
    } public MyTextBox()
    {

    }
    }