如何做到文本格式化C#中对一些控制调整文本 [英] How to do text formating in C# for adjusting text in some control

查看:157
本文介绍了如何做到文本格式化C#中对一些控制调整文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创造,我想显示在运行时标签控件一些文字上的winform用户控件。
在这里,我用textFormatFlag作为WordBreak,然后显示在下一行。标签的大小而变化的高度固定的宽度。现在这里的问题是如何突破字符串是否存在,即没有WordBreak字符串中存在之间没有空格。
我不想做字体大小计算,并进行相应的修改字符串。它说的是隐藏在.NET中,可以为我做这项工作。

  sizeCategory = TextRenderer.MeasureText(来源[PARENT_NAME ]的ToString()
,lbldbCategory.Font
,sizeCategory
,TextFormatFlags.WordBreak);



考虑行作为我的标签的边界。宽高。高度是可变的。
考虑这个如:



我的文本字符串为



 salkdjasldjkslakdjlsakjdlsakjdkajhk sdjahksajd//看到字符串
之间的单词突破-------------------------- --------------------- |
salkdjasldjkslakdjlsakjdlsakjdkajhk |
sdjahksajd |
---------------------------------------------- - |



我所做目前得到的就是这个。



由于破字

  ------------ ----------------------------------- | 
salkdjasldjkslakdjlsakjdlsakjd |
kajhksdjahksajdh |
---------------------------------------------- - |



正在发生的事情是当字符串有即无字没有空间突破

  --------------------------- -------------------- | 
salkdjasldjkslakdjlsakjdlsakjdkajhksdjahksajdhasdasdasdsadasd |
---------------------------------------------- - |



我要的是



  ------------------------------------ ----------- | 
salkdjasldjkslakdjlsakjdlsakjdkajhksdjahksajdha |
sdasdasdsadasd |
---------------------------------------------- - |


解决方案

由于您使用的一个标签控件离开自动调整大小设置为true,并设置 MAXIMUMSIZE 属性类似 150,0



只是测试它。它的工作原理。


I have created a user control on winform where i want to display some text on Label Control at runtime. Here I used textFormatFlag as WordBreak and then displays it in the next line. Size of label is fixed in width while variable in height. Now the problem here is how to break a string if there is no space between i.e. no WordBreak Present in the string. I dont want to do calculations on font size and accordingly modify string. Is it something hidden in .net that can do this work for me.

    sizeCategory = TextRenderer.MeasureText(Source["Parent_Name"].ToString()
                  , lbldbCategory.Font
                  , sizeCategory
                  , TextFormatFlags.WordBreak);

Consider lines as a boundary of my label. width height. Height being variable. Consider this eg.

My text string being

"salkdjasldjkslakdjlsakjdlsakjdkajhk sdjahksajd" //see word break between the string
-----------------------------------------------|
salkdjasldjkslakdjlsakjdlsakjdkajhk            |
sdjahksajd                                     |
-----------------------------------------------|

What I did and currently getting is this.

due to word break

-----------------------------------------------|
salkdjasldjkslakdjlsakjdlsakjd                 |
kajhksdjahksajdh                               | 
-----------------------------------------------|

What is happening is when string has no space i.e. no word break

-----------------------------------------------|
salkdjasldjkslakdjlsakjdlsakjdkajhksdjahksajdhasdasdasdsadasd|
-----------------------------------------------|

What I want is

-----------------------------------------------|
salkdjasldjkslakdjlsakjdlsakjdkajhksdjahksajdha|
sdasdasdsadasd                                 |
-----------------------------------------------|

解决方案

Since you are using a label control, leave AutoSize set to true, and set the MaximumSize property to something like 150, 0.

Just tested it. It works.

这篇关于如何做到文本格式化C#中对一些控制调整文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆