当前位置: 首页 > 编程语言 > C#

富文本框禁用时如何改变背景颜色?分享

时间:2023-04-10 18:25:12 C#

禁用时如何更改富文本框的背景颜色?每当我将RichTextBox.Enabled属性设置为false时,它??的背景颜色会自动设置为灰色,因为它已设置为控制面板中设置的系统颜色。即使将其设置为禁用,如何将其颜色更改为黑色?请参阅:如何更改禁用的文本框的字体颜色?[编辑——添加代码示例]richTextBox.TabStop=false;richTextBox.ReadOnly=true;richTextBox.BackColor=Color.DimGray;richTextBox.Cursor=Cursors.Arrow;richTextBox.Enter+=richTextBox_Enter;privatevoidrichTextBox_Enter(objectsender,EventArgse){//您需要将焦点设置在其他地方。例如标签。SomeOtherControl.Focus();}或作为扩展方法(我知道你不必将其设置为只读,因为Enter事件会捕获任何输入):错误的;control.BackColor=Color.DimGray;control.Cursor=Cursors.Arrow;control.Enter+=delegate{焦点目标。重点();};我刚刚找到了一个很好的方法来做到这一点。它应该适用于任何控件:publicclassDisabledRichTextBox:System.Windows.Forms.RichTextBox{//请参阅:http://wiki.winehq.org/List_Of_Windows_MessagesprivateconstintWM_SETFOCUS=0x07;私人常量intWM_ENABLE=0x0A;私人常量intWM_SETCURSOR=0x20;protectedoverridevoidWndProc(refSystem.Windows.Forms.Messagem){if(!(m.Msg==WM_SETFOCUS||m.Msg==WM_ENABLE||m.Msg==WM_SETCURSOR))base.WndProc(refm);您可以安全地设置Enabled=true和ReadOnly=false,它会像标签一样,防止焦点、用户输入、光标更改,但实际上不会禁用。看看它是否适合你。Greetings创建一个自定义Richtextbox,如下所示这将生成一个具有透明Backcolor的Richtextbox。然后您可以将此控件放置在适当颜色的面板上。公共类MyRichTextBox继承RichTextBox_SharedFunctionLoadLibrary(ByVallpFileNameAsString)AsIntPtrEndFunctionProtectedOverloadsOverridesReadOnlyPropertyCreateParams()AsCreateParamsGetDimpramsAsCreateParams="MyBase.CreateParamsIfLoadLibrary.Thenprams.ExStyle=prams.ExStyleOr&H20'MakesTransparentprams.ClassName="RICHEDIT50W"EndIfReturnpramsEndGetEndProperty为时已晚但还不错,privatevoidrichTextBox1_ReadOnlyChanged(objectsender,EventArgse){//就在这里而不是白色选择你的颜色richTextBox1。BackColor=Color.White;}privatevoidForm1_Load(objectsender,EventArgse){richTextBox1.ReadOnly=true;}将backcolor属性设置为您想要的颜色,然后将richtextbox设置为只读。例如:richTextBox.BackColor=Color。White;richTextBox.ReadOnly=true;看看DrawStringDisabled方法。你必须重写OnPaint方法,然后使用DrawStringDisabled方法。但是,如果我处于你的位置,那么我会选择MikaelSvenson的答案。以上就是C#学习教程:富文本框禁用时如何改变背景颜色?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: