[已解决问题] C# winfrom 自定义控件如何文本换行?
提问时间: 2008-07-08 09:49
悬赏分:20 浏览:202 次

是这样的

我下了一个自定义button控件(椭圆形控件),但没换行功能,

所以想请教各位

先谢了



问题补充:在线等,希望各位高手指教一下。

知道的朋友告诉下。

最佳答案
这个Button上有什么东西可以自定义的?他是从标准Button继承的吗?
信息详细一些,别人才好给你解决方案啊。

2008-07-08 更新:
看你的例子,应该是去掉NoWrap这个标记就可以了。
你说没有试出来,是不是你的字符串里面没有包含"\r\n"字符?如果你的字符串中使用"\n"表示换行,可能不能够正确的话出来。
2008/7/8 13:17:03 回答者:Colin Han


提问者对于答案的评价:3q 问题已经解决了。
其它回答(1)
你可以先判断他的长度,如果超过多少了 你用</br>一下,前提是你得先测试出 你的按钮上写几个字比较合适。 我们以前写的自定义控件就是用这种办法换行的,如果大家有更好的办法可以一起分享一下。
1个月前   回答者:金鱼 - 菜鸟二级
评论
1个月前   右手年华 :
TO 金鱼:
我做的是winfrom程序,没有</br>,
但你的思路可以借鉴一下,问题又来了我怎么让文本换行呢?
1个月前   右手年华 :
TO Colin Han:
我就是从网上找了个自定义的椭圆形按钮控件,但他不能换行,
所以想让文本换行,此控件是从UserControl继承来的
if( this.Text != null )
{
// 绘制文本
using( StringFormat f = new StringFormat())
{
// 水平居中对齐
f.Alignment = System.Drawing.StringAlignment.Center ;
// 垂直居中对齐
f.LineAlignment = System.Drawing.StringAlignment.Center ;
// 设置为单行文本
f.FormatFlags = System.Drawing.StringFormatFlags.NoWrap ;
                    //f.FormatFlags = System.Drawing.StringFormatFlags.MeasureTrailingSpaces;
// 绘制文本
using( SolidBrush b = new SolidBrush( this.ForeColor ))
{
e.Graphics.DrawString(
this.Caption , 
this.Font ,
b , 
new System.Drawing.RectangleF(
0 , 
0 ,
this.ClientSize.Width ,
this.ClientSize.Height ) , 
f );
}
}
我感觉是// 设置为单行文本
f.FormatFlags = System.Drawing.StringFormatFlags.NoWrap ;
的问题,但是了半天也没试出来。
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除