本文介绍了关于重绘标签控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我想实现标签控制文本显示前面的四个字符都是白色的,后一个字是全红色的。 以下是我的代码: < pre lang = c# > //我用过:作为分隔符 public Rectangle DeflateRect(Rectangle rect,Padding padding) { rect.X + = padding.Left; rect.Y + = padding.Top; rect.Width - = padding.Horizo​​ntal; rect.Height - = padding.Vertical; 返回rect; } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); 矩形r = DeflateRect(base.ClientRectangle,base.Padding); if(this.Text.Length> 0) { string [] str = this.Text.Split(new char [] {':'}); if(str.Length> 0) { TextRenderer.DrawText(e.Graphics, this.Text.Substring(0,str [0] .Length + 1 ),this.Font,r,Color.White,base.BackColor,TextFormatFlags.Left); TextRenderer.DrawText(e.Graphics, this.Text.Substring(str [0] .Length + 1,str [1] .Length),this.Font ,r,Color.Red,base.BackColor,TextFormatFlags.Right); } } } < / pre > < pre lang = vb > 然而,我遇到了以下问题:当& quot; \ naaaaaaaaaaaaaaaaaaaa \ nbbbbbbbbbbbbbbbbbb \ nccccccccc& quot;当控制字生成器和原始偏移量时,将显示多个换行符,它看起来像控制字上显示的两种颜色< / pre > 解决方案 I want to achieve label control text display in front of four characters are white, the latter word is all red.The following is my code:<pre lang="c#"> //I have used: as a separator public Rectangle DeflateRect(Rectangle rect, Padding padding) { rect.X += padding.Left; rect.Y += padding.Top; rect.Width -= padding.Horizontal; rect.Height -= padding.Vertical; return rect; } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Rectangle r = DeflateRect(base.ClientRectangle, base.Padding); if (this.Text.Length > 0) { string[] str = this.Text.Split(new char[] { ':' }); if (str.Length > 0) { TextRenderer.DrawText(e.Graphics, this.Text.Substring(0, str[0].Length + 1), this.Font, r, Color.White, base.BackColor, TextFormatFlags.Left); TextRenderer.DrawText(e.Graphics, this.Text.Substring(str[0].Length + 1, str[1].Length), this.Font, r, Color.Red, base.BackColor, TextFormatFlags.Right); } } }</pre><pre lang="vb">However, I encounter the following problems: When &quot;\ naaaaaaaaaaaaaaaaaaaaa \ nbbbbbbbbbbbbbbbbbbb \ nccccccccc&quot; multiple newline character will be displayed when the control word generator and the original offset, it looks like two kinds of color displayed on the control word</pre> 解决方案 这篇关于关于重绘标签控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
05-27 08:10
查看更多