Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 启用时My RichTextBox change backgroundcolor设置为false_C#_Winforms - Fatal编程技术网

C# 启用时My RichTextBox change backgroundcolor设置为false

C# 启用时My RichTextBox change backgroundcolor设置为false,c#,winforms,C#,Winforms,如何在禁用(即Enabled=false)的RichTextBox上将backgroundcolor和fontcolor设置为“正常” 感谢Windows用户界面指南要求禁用的控件显示为禁用。明显的好处是,用户可以看出,继续在控件上敲击鼠标,试图将焦点设置到控件上是没有意义的。与工具箱中的所有控件一样,RichTextBox也实现了这一准则。覆盖其绘制行为是不实际的。考虑“只读”属性。 Windows用户界面指南要求禁用的控件出现禁用。明显的好处是,用户可以看出,继续在控件上敲击鼠标,试图将焦点

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


感谢

Windows用户界面指南要求禁用的控件显示为禁用。明显的好处是,用户可以看出,继续在控件上敲击鼠标,试图将焦点设置到控件上是没有意义的。与工具箱中的所有控件一样,RichTextBox也实现了这一准则。覆盖其绘制行为是不实际的。考虑“只读”属性。

Windows用户界面指南要求禁用的控件出现禁用。明显的好处是,用户可以看出,继续在控件上敲击鼠标,试图将焦点设置到控件上是没有意义的。与工具箱中的所有控件一样,RichTextBox也实现了这一准则。覆盖其绘制行为是不实际的。考虑只读属性。

仿真被禁用的属性。实现一个属性,当该属性设置为false时,控件将不会获得焦点或忽略所有按键笔划。


在我看来很奇怪,但是程序员想要程序员想要的东西!;-]

模拟被禁用的属性。实现一个属性,当该属性设置为false时,控件将不会获得焦点或忽略所有按键笔划。
在我看来很奇怪,但是程序员想要程序员想要的东西!;-]

我将创建一个从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几乎相同,只是您实际上仍然可以在文本框中单击(您只是无法编辑它)。当它为只读时,您仍然可以控制正常颜色属性,而无需覆盖任何内容


如果您想更具创造性,可以在RichTextBox的Enter事件中添加一个委托,该委托将焦点设置为其他控件,以防止用户甚至在框中单击(已启用但不允许您这样做)

我将创建一个从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几乎相同,只是您实际上仍然可以在文本框中单击(您只是无法编辑它)。当它为只读时,您仍然可以控制正常颜色属性,而无需覆盖任何内容


如果您想更具创造性,可以在RichTextBox的Enter事件中添加一个委托,该委托将焦点设置为其他控件,以防止用户甚至在框中单击(启用后不允许您这样做)

为什么要禁用它?为什么要禁用它?