C# 启用时My RichTextBox change backgroundcolor设置为false
如何在禁用(即Enabled=false)的RichTextBox上将backgroundcolor和fontcolor设置为“正常”C# 启用时My RichTextBox change backgroundcolor设置为false,c#,winforms,C#,Winforms,如何在禁用(即Enabled=false)的RichTextBox上将backgroundcolor和fontcolor设置为“正常” 感谢Windows用户界面指南要求禁用的控件显示为禁用。明显的好处是,用户可以看出,继续在控件上敲击鼠标,试图将焦点设置到控件上是没有意义的。与工具箱中的所有控件一样,RichTextBox也实现了这一准则。覆盖其绘制行为是不实际的。考虑“只读”属性。 Windows用户界面指南要求禁用的控件出现禁用。明显的好处是,用户可以看出,继续在控件上敲击鼠标,试图将焦点
感谢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事件中添加一个委托,该委托将焦点设置为其他控件,以防止用户甚至在框中单击(启用后不允许您这样做)为什么要禁用它?为什么要禁用它?