winforms大段工具提示

时间:2010-03-25 02:38:47

标签: c# winforms tooltip

当我悬停某个图片框时,我正试图在工具提示中显示一个段落。问题是,工具提示采用该段落,并在整个屏幕上跨越一行。我怎样才能使它占用更小,更易读的区域? 或者,也许你有另一种技术来实现同样的目的,但没有工具提示功能?

7 个答案:

答案 0 :(得分:9)

在字符串中添加换行符。

string tooltip = string.Format("Here is a lot of text that I want{0}to display on multiple{0}lines.", Environment.NewLine);

答案 1 :(得分:6)

您可以使用以下内容:

private const int maximumSingleLineTooltipLength = 20;

private static string AddNewLinesForTooltip(string text)
{
    if (text.Length < maximumSingleLineTooltipLength)
        return text;
    int lineLength = (int)Math.Sqrt((double)text.Length) * 2;
    StringBuilder sb = new StringBuilder();
    int currentLinePosition = 0;
    for (int textIndex = 0; textIndex < text.Length; textIndex++)
    {
        // If we have reached the target line length and the next 
        // character is whitespace then begin a new line.
        if (currentLinePosition >= lineLength && 
              char.IsWhiteSpace(text[textIndex]))
        {
            sb.Append(Environment.NewLine);
            currentLinePosition = 0;
        }
        // If we have just started a new line, skip all the whitespace.
        if (currentLinePosition == 0)
            while (textIndex < text.Length && char.IsWhiteSpace(text[textIndex]))
                textIndex++;
        // Append the next character.
        if (textIndex < text.Length)
            sb.Append(text[textIndex]);

        currentLinePosition++;
    }
    return sb.ToString();
}

答案 2 :(得分:6)

您无需使用代码来包含\ r \ n字符。

如果单击ToolTip属性值右侧的下拉箭头,则会显示一个多行编辑框。

只需按Enter即可创建新行。

答案 3 :(得分:2)

您是否尝试在工具提示中插入换行符\n,以使其跨越多行?

答案 4 :(得分:2)

您无法在控件的tooltip属性中添加\r\n。它根本不起作用。要解决您的问题,只需在代码本身中添加工具提示,通常在InitializeComponent方法中。 I.E。:( c#,winform示例)

this.mToolTip.SetToolTip(this.tbxControl,
    "This is the first line of the tooltip.\r\n" +
    "This is the second line of the tooltip.");

答案 5 :(得分:0)

使用新行对我有用

"

答案 6 :(得分:0)

如果您在列的DataGridView属性控件中输入工具提示,而我怀疑其他WinForms控件设计器,并且在工具提示中包含“ \ r \ n”,您将看到“ \\ r \\ n”在运行代码时显示的工具提示中。这是因为工具提示属性已经是字符串,并且设计人员将在属性窗口中输入的工具提示中的代码解释为“ \\ r \\ n”。您可以转到.Designer.cs文件,手动编辑该文件,并将“ \\ r \\ n”替换为“ \ r \ n”。然后,当应用程序运行时,您将看到带有换行符的工具提示。如果回头查看设计器中工具提示的值,您将看到没有换行符的工具提示,但是它会存在,并且不会重新转换为“ \\ r \\ n”由设计师。尽管前面有注释,但只需要“ \ n”。不需要“ \ r”。