如题,我有两种固定size的label,其中width是固定一样的,hight一个是显示三行,一个是显示一行,在这两种label中,如果给的string不能完全显示,则末尾截取之后用"...", 现在问题是,在lable的properties中,有一个属性"AutoEllipsis",如果设置为true,则控件自动接取,并在末尾添加"...",但是这个时候,如果将鼠标放上控件,它会出来一个tooltip,用户说不能接受,必须去掉.但是如果将这个属性设置为false,虽然没有了tooltip,同时也没了末尾的"...", 请大家指教一下,怎么处理? 或者有没有什么别的替代办法,达到效果. Thanks.
toolTip1.SetToolTip(label1, null);
thx
private void Form1_Load(object sender, EventArgs e)
{
ToolTip vToolTip = new ToolTip();
vToolTip.SetToolTip(label1, "nonull"); // 得先设置为有值
vToolTip.SetToolTip(label1, "");
}
SizeF strSize = new SizeF();
Graphics graphics = this.CreateGraphics();
Font useFont = new Font(/*MSG0*/"Arial", 9);
strSize = graphics.MeasureString(newRecord.Summary,useFont,this.m_label.Width);
明明都是只需要显示两行就够了,但是如果this.m_label.Width不一样,他计算出来的高度不一定一样,比如需要高36点几就可以显示两行,但是有时候通过ui,他显示出来也是两行,但是这个strSize.height却是3行的值,我查过msdn,他说这个函数会再字符串末尾加一个空格,所以计算不精确.但是我在96DPI下,就很正常,和我预期一样,但是120DPI下,问题就出来了,我现在就是要利用控件的自动换行功能,让它帮我换行,但是又要知道换行之后,这个控件实际应该多大的hight,有什么好办法吗? 诚心请教
strSize = TextRenderer.MeasureText(graphics,
newRecord.Summary, useFont,
new Size(this.m_label.Width, 50), flags);