代码之家  ›  专栏  ›  技术社区  ›  Johannes

启用时,我的RichTextBox更改背景颜色设置为false

  •  0
  • Johannes  · 技术社区  · 14 年前

    如何在禁用(即Enabled=false)的RichTextBox上将backgroundcolor和fontcolor设置为“normal”?

    3 回复  |  直到 14 年前
        1
  •  1
  •   pinkfloydx33    14 年前

    我将创建一个继承自RichTextBox的新控件。例如,可以重写BackColor属性以始终返回类似白色的内容。字体颜色也可以做类似的事情。我想你可以做些事情,比如:

    class CustomRichTextBox : System.Windows.Forms.RichTextBox {
         public override System.Drawing.Color BackColor {
              get { return System.Drawing.Color.White; }
              set { base.BackColor = System.Drawing.Color.White; }
         }
    }
    

    尽管这可能不起作用,因为您可能需要重写OnPaint方法来绕过默认的灰显行为。

    另一种选择是直接使用readonly属性。ReadOnly与enabled=false几乎相同,只是您实际上仍然可以在文本框中单击(只是不能编辑它)。当它为只读时,您仍然可以控制普通颜色属性,而不必重写任何内容。

        2
  •  3
  •   Hans Passant    14 年前

    Windows用户界面指南要求禁用的控件显示为禁用。很明显的一个好处是,用户可以告诉用户,不停地用鼠标敲击控件,试图设置控件的焦点是没有意义的。与工具箱中的所有控件一样,RichTextBox也实现了这条准则。重写其绘画行为是不实际的。考虑ReadOnly属性。

        3
  •  1
  •   Maghoumi    14 年前

    我觉得很奇怪,但是程序员想要程序员想要的东西!;-]