我正在尝试做多行工具提示。断线的charachters不起作用

时间:2016-09-16 15:09:26

标签: c# tooltip

我正在尝试创建多行工具提示。

myToolTip.ToolTipTitle="First line\nSecond line";
myToolTip.ToolTipTitle="First line\r\nSecond line";
myToolTip.ToolTipTitle="First line\nSecond line";
string s="First line\nSecond line";
s = s.Replace("\n", Environment.NewLine);
myToolTip.ToolTipTitle=s;

以上所有代码仅显示oneline工具提示,并始终在下方添加额外的行: enter image description here 我试图在ToolTipTitle中插入字符串换行符,例如" \ r \ n" " \ n"或Environment.Newline,但它仍然无效。有什么建议吗?

3 个答案:

答案 0 :(得分:0)

ToolTipTitle不能有多行,但标题可以。

以这种方式尝试:

StringBuilder sb = new StringBuilder();
sb.AppendLine("First Line");
sb.AppendLine("Second Line");
myToolTip.SetToolTip(button1, sb.ToString());

myToolTip.Show(sb.ToString(), button1);

答案 1 :(得分:0)

我在问题@Shimmy's上找到了部分基于Displaying tooltip on mouse hover of a text回答的解决方案。

我不得不使用toolTip1.SetToolTip(pictureBox1,TextString)函数。 ToolTip标题不能是多行的。

需要定时器以避免闪烁。当用户将鼠标移到PictureBox上时,工具提示会显示多行文字。

public partial class Form1 : Form
{
    private System.Windows.Forms.ToolTip toolTip1;
    private System.Windows.Forms.PictureBox pictureBox1;
    System.Windows.Forms.Timer ToolTipsTimer = new System.Windows.Forms.Timer();
    public Form1()
    {
        InitializeComponent();

        ToolTipsTimer.Tick += new EventHandler(ToolTipsTimerEventProcessor);
        ToolTipsTimer.Interval = 300;
        ToolTipsTimer.Start();
        toolTip1.AutomaticDelay = 300;

    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
    private void ToolTipsTimerEventProcessor(Object myObject, EventArgs myEventArgs)
    {
        ToolTipsTimer.Enabled = false;
    }

    string TextString = "First line\n Second line";
    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (!ToolTipsTimer.Enabled)
        {
            toolTip1.SetToolTip(pictureBox1, TextString);
            ToolTipsTimer.Enabled = true;
        }
    }
}

答案 2 :(得分:-1)

没有足够的JavaScript代码来解决您的问题。如果您使用弹出警报(),则“\ n \ n”将起作用;我一直这样做。

这是一种解决方法:使用HTML5标题属性并对换行符进行硬编码。像这样: