我有在WinForm 按鈕文本長度的按鈕可能的各種操作過程中非常..一個按鈕顯示工具提示時,文本太長
我不想改變按鈕的大小(所以我已經設置「Autosize」屬性爲false)
如何在鼠標懸停時顯示工具提示(完整按鈕文本),只要按鈕文本正在切割?
請注意,我不想總是提示.....我想它,只有當按鈕上的文字是越來越切
我有在WinForm 按鈕文本長度的按鈕可能的各種操作過程中非常..一個按鈕顯示工具提示時,文本太長
我不想改變按鈕的大小(所以我已經設置「Autosize」屬性爲false)
如何在鼠標懸停時顯示工具提示(完整按鈕文本),只要按鈕文本正在切割?
請注意,我不想總是提示.....我想它,只有當按鈕上的文字是越來越切
希望這個代碼將有助於您
if (button1.Text.Length > Your button text length to be checked)
{
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.button1, this.button1.Text);
}
您必須在按鈕寫那些代碼MouseHover事件
我認爲你必須手動檢查文本的長度上按鈕,按鈕
的大小,如果大於你必須添加按鈕運行時的提示財產
不要忘記從工具箱拖動
感謝
在你的項目中添加工具提示控制替代方法:使用按鈕AutoElipsis屬性爲True。
我不認爲到目前爲止的答案是非常正確的 - 呈現的字符串的長度(並且這也是您在考慮按鈕尺寸時需要的)的長度可能會因字體和字符而異使用。使用比例字體諸如Microsoft Sans Serif
將返回不同的尺寸用於容納相同數量的字符的字符串時,這些字符不同,例如:
「IIIIIIIIII」不是一樣寬
「wwwwwwwwww」。
你應該使用`Graphics類
Graphics grfx = Graphics.FromImage(new Bitmap(1, 1));
// Set a proportional font
button1.Font = new Font("Microsoft Sans Serif", 8.25f, FontStyle.Regular);
SizeF bounds = grfx.MeasureString(
button1.Text,
button1.Font,
new PointF(0, 0),
new StringFormat(StringFormatFlags.MeasureTrailingSpaces));
MessageBox.Show("Text dimensions: " + bounds.Width + "x" + bounds.Height);
// Set a non-proportional font
button1.Font = new Font("Courier New", 8.25f, FontStyle.Regular);
bounds = grfx.MeasureString(
button1.Text,
button1.Font,
new PointF(0, 0),
new StringFormat(StringFormatFlags.MeasureTrailingSpaces));
MessageBox.Show("Text dimensions: " + bounds.Width + "x" + bounds.Height);
這個偉大的工程的
MeasureString
方法,有一兩件事我注意到的是,如果該按鈕啓用它不會顯示。發現了這一點,因爲我想說出爲什麼一個按鈕被禁用的原因。 – DanO 2014-01-24 19:31:42