C# 用Graphics的DrawString没法体现出Tab键的空位 20

自己写的一个程序,要在控件上绘制出输入的文字。现在从别的地方拷贝粘贴上来的文字内容中有Tab键生成的空位,但是绘制出来的完全看不出Tab空位。请问是怎么回事,需要怎么解决... 自己写的一个程序,要在控件上绘制出输入的文字。现在从别的地方拷贝粘贴上来的文字内容中有Tab键生成的空位,但是绘制出来的完全看不出Tab空位。请问是怎么回事,需要怎么解决?
代码如下:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics graph = e.Graphics;
BufferedGraphicsContext currentContext = BufferedGraphicsManager.Current;
BufferedGraphics myBuffer = currentContext.Allocate(e.Graphics, e.ClipRectangle);
Graphics g = myBuffer.Graphics;
g.SmoothingMode = SmoothingMode.HighQuality; //高质量
g.PixelOffsetMode = PixelOffsetMode.HighQuality; //高像素偏移质量
g.Clear(m_TextInfo.BackColor);
drawTextContern = m_TextInfo.TextContent;
g.DrawString(drawTextContern, font, brush, drawRectangle, sf);
sf.Dispose();
}
myBuffer.Render(e.Graphics);
g.Dispose();
}
直接写在用户自定义控件中的。
拷贝过来的字符串:
班级名称 25班
学生姓名: 学号: 登记时间: 身高(cm): 体重:
学生1 hahahahah 2014-03-10 14:26:42 160.1 25

正确画出来应该是:

结果现在是这样的:
请高手帮忙解决一下!谢谢。
展开
 我来答
然后去远足
2014-03-11 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2357万
展开全部
有制表符可以直接读取赋值,但尽量不要手工复制,因为有可能在复制过程中就将制表符转化成空格符了(比如你看度娘就已经给你转化成空格符了)。

尽量用转义字符来插入这些特殊字符(制表符是 \t),或者 C# 里有 PadLeft、PadRight 方法来实现缩进。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式