永发信息网

c#计算文字打印长度

答案:2  悬赏:70  手机版
解决时间 2021-04-06 08:12
我只能确定文字的起始位置,想实现的效果是文字居中,我的思路是计算出文字的长度然后起始位置往前移动一半
java中实现的方法是FontMetrics.stringWidth
补充,我写的内容不是form也不是web,不要跟我说控件或html里面的内容
最佳答案
textBox1.Text = "hello World!";
//width:6.15px=1Byte 一般,6.15个像素的宽度等于1个字节的宽度。所以可以使用下面的方式而不指定TextBox的MaxLength属性,推荐。
string space = new string(' ', Convert.ToInt32(((textBox1.Width / 6.15) - Encoding.GetEncoding("gb2312").GetBytes(textBox1.Text).Length) / 2));
//也可以这么做,不过事先需要指定TextBox的MaxLength属性,使其宽度正好和字符的最大数一致,不推荐,根据情况而定。
//string space = new string(' ', Convert.ToInt32((textBox1.MaxLength - Encoding.GetEncoding("gb2312").GetBytes(textBox1.Text).Length) / 2));
textBox1.Text = space + textBox1.Text;

//Encoding.GetEncoding是获取真实字节长度,因为每个中文字符和标点都占用两个字节。
全部回答
c# 不支持。 要的话,只能在 paint 事件里, 用 gdi+ 自己画 -------------------------------------------------- private void form1_paint(object sender, painteventargs e) { e.graphics.drawstring("我是画的字符串", new font(fontfamily.genericsansserif, 18), brushes.crimson, 50, 100); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
打完除草剂的地能种白菜吗
形容人很忙碌的歇后语
如图,C点在B处的北偏东85°方向,A点在C处的
什么叫网页框架式结构,还有什么叫链接栏!
有没有了解蓝驰创投这个机构的呀?
三年下册作文,可怜的小袋鼠
下列实验操作正确的是A.用燃着的酒精灯去点燃
多少分能考青州二炮士官学校
江苏预测有17级台风对扬州宝应有影响吗
北京三星搬家公司怎么样?
小品打针台词完整版,小品打针搞笑视频笑傲江
旅行箱膜要不要撕
盖伦打极地大乱斗怎么出装备
1.给加横线的文字,加上标点。阅读答案
关于王羲之的故事,以及这个故事给你的启示
推荐资讯
成都周边三日游,哪些旅游景点比较漂亮好玩?
大学里会计专业和金融专业有什么区别
单选题下列关于陆地生活动物对环境的适应的叙
端午节为什么带手链
我想做洋糕 老公总是泼我冷水 我该怎么办
5+10+15+20 6868+195+200 等于几
一个三角形,其中的两个锐角的和等于第三个角
家里四个人,加上老婆怀上了,想买辆车,岳父
潮州饶舌歌词
去国外做一年对外汉语志愿者能挣多少钱
1公斤等于多少升?谁知道?谢了
湖南长沙到广西有多远,湖南省相西到广西有多
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?