如何將WordWrap = false
設置爲System.Windows.Forms.Label
?對於標籤設置WordWrap = false
我在面板上有一個標題,它應該顯示"MyPanel capt..."
。所以我用AutoEllipsis = true
,但這還不夠。
我也使用「AutoSize = true
」,因爲我希望標籤佔用儘可能小的空間。
Apropos,Visual Basic 6.0做到了。
如何將WordWrap = false
設置爲System.Windows.Forms.Label
?對於標籤設置WordWrap = false
我在面板上有一個標題,它應該顯示"MyPanel capt..."
。所以我用AutoEllipsis = true
,但這還不夠。
我也使用「AutoSize = true
」,因爲我希望標籤佔用儘可能小的空間。
Apropos,Visual Basic 6.0做到了。
我找到了一個解決方案:
this.label.AutoEllipsis = true;
this.label.AutoSize = true;
在面板的事件處理程序,調整大小:
...
textHeight = this.label.Font.SizeInPoints; // Take in pixels, not points
...
Size newMaxSize = new Size(this.Width,
textHeight + label.Padding.Top + label.Padding.Bottom);
this.label.MaximumSize = newMaxSize;
...
我不認爲有什麼辦法可以做到這一點 - 標籤本身不是單行或多行的。這取決於標籤的Text
屬性是否有任何換行符。
如果您希望它是單行,請將Text
中的CRLF字符替換爲其他字符。
如果我有一個沒有換行符的長詞組,它會傳遞給新行。請參閱更新中的說明。 – serhio 2010-04-13 15:09:15
反過來:* [Label word wrapping](http://stackoverflow.com/questions/9509147/label-word-wrapping/10069986#10069986)* – 2016-05-10 09:46:08
我敢肯定你不能阻止標籤打包。一個可選的(如果稍微粗糙的話)選項是將標籤設置爲自動調整大小(因此寬度隨文本增長),然後按照z順序將一個控件放在它的前面。這樣,當標籤寬度超過某個點時,標籤重疊的內容將被該其他控件隱藏。
就像我說的,這是一個非常簡單的方法來達到這個效果。
此外,如果您嘗試使用AutoEllipsis,我假設您已禁用AutoResize?我相信它優先。
我有一個類似的效果使用工作:
label1.AutoSize = false;
label1.AutoEllipsis = true;
和大小的標籤區域是在高度只有一行。
我也使用「AutoSize = true」,因爲要讓標籤佔用儘可能小的空間。 – serhio 2010-04-13 15:16:26
嘗試設置標籤MAXIMUMSIZE屬性。
啊,我想我終於明白了你想要的效果。
您想要一個AutoSize最大值的標籤。達到最大值後,您想要顯示AutoEllipsis。正確?
如果是這樣,那麼您需要設置MaximumSize,AutoEllipsis和AutoSize屬性。然後標籤將盡可能小。當文本超出您指定的最大大小時,文本將被截斷並添加省略號。你不需要代碼就可以做到這一點。
是的;你理解正確。但問題是設置MaxSize。家長面板是可重新設置的,所以請參閱我的答案。 – serhio 2010-04-13 15:37:11
我正在使用FlowLayoutPanel將標籤從左到右依次保存。所以autosize和重疊打破我很好地對齊列。我認爲最直接的方法就是自己實施繪畫。助手存在爲你做省略號。
最後一個TextFormatFlags有十幾個選項可以節省大量煩人的繪圖代碼。
private void templateLabel_Paint(object sender, PaintEventArgs e)
{
Label lbl = sender as Label;
e.Graphics.Clear(lbl.BackColor);
TextRenderer.DrawText(e.Graphics, lbl.Text, lbl.Font,
lbl.ClientRectangle,
Color.Black,
lbl.BackColor, TextFormatFlags.EndEllipsis);
}
你想要什麼視覺效果? – 2010-04-13 14:56:08
查看更新。 – serhio 2010-04-13 15:07:11