gpt4 book ai didi

.net - 在TextBox中更改选定的Text BackColor

转载 作者:行者123 更新时间:2023-12-01 02:46:57 24 4
gpt4 key购买 nike

我想知道如何为TextBox中的选定文本实现自定义背景色。默认情况下,它对所选文本使用Windows的标准颜色(浅蓝色)。由于我使用的是基于winforms TextBox的皮肤文本编辑器,而TextBox没有公开任何属性来更改颜色,因此我想知道是否还有其他方法可以在应用程序级别更改此系统默认颜色?

谢谢,

汤姆

最佳答案

也许这有帮助...

public class MyTextBox : System.Windows.Forms.TextBox
{
private const int WM_PAINT = 0x000F;

public MyTextBox()
{
this.TextChanged += new System.EventHandler(this.myTextBox_TextChanged);

}

private void myTextBox_TextChanged(object sender, System.EventArgs e)
{
}


[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
// Listen for operating system messages.
switch (m.Msg)
{
case WM_PAINT:
PaintEventArgs pe = new PaintEventArgs(this.CreateGraphics(),this.RectangleToScreen(this.ClientRectangle));
this.OnPaint(pe);
break;
}

}

protected override void OnPaint(PaintEventArgs pe)
{
// call base.OnPaint(pe);
Graphics g = pe.Graphics;
g.Clear(this.BackColor);
string s = this.Text.Substring(0,this.Text.Length/2);
// provide a object with how to split your string with colors
string s1 = this.Text.Substring(this.Text.Length/2);
SizeF sf = g.MeasureString(s,this.Font);
g.DrawString(s,this.Font,new SolidBrush(Color.Red),0,0);

g.DrawString(s1,this.Font,new SolidBrush(Color.Black),sf.Width,0);
}
}

关于.net - 在TextBox中更改选定的Text BackColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com