Длина текста в подсказке WinForms - PullRequest
0 голосов
/ 16 августа 2011

как установить максимальную длину текста в подсказке WinForms? У меня есть строка с примерно 300 символами, но моя подсказка отображает только 264 из них ...

Привет,

Jürgen

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

Вы можете добавить NewLine несколько раз в строку всплывающей подсказки, например, так, чтобы она не проходила по всему экрану.

Строка вдлина этого кода составляет 434 символа.

: -)

Просто запустите этот код, чтобы попробовать его: >>

Imports System.Environment

Public Class Form1

    Friend WithEvents myToolTip As New ToolTip

    Private Sub Form1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseHover

        Dim someText As String = _
        "Hello World!! Hi everyone!! Good day, good evening or goodnight, wherever you are in the world!!  :-)   :-D" & NewLine & _
        "Hello World!! Hi everyone!! Good day, good evening or goodnight, wherever you are in the world!!  :-)   :-D" & NewLine & _
        "Hello World!! Hi everyone!! Good day, good evening or goodnight, wherever you are in the world!!  :-)   :-D" & NewLine & _
        "Hello World!! Hi everyone!! Good day, good evening or goodnight, wherever you are in the world!!  :-)   :-D"

        Me.Text = someText.Length.ToString
        myToolTip.Show(someText, Me, 5000)

    End Sub

End Class
0 голосов
/ 19 июля 2018

У меня была такая же проблема (это случилось с ячейкой DataGridView), и текст всплывающей подсказки по умолчанию (т.е. текстовое содержимое ячейки) действительно усекался.

Для меня это начало работать правильно, когда я установил текст всплывающей подсказки явно (все ответы, которые я вижу, делают это).То, что я считаю тонким, заключается в том, что текст всплывающей подсказки по умолчанию использует тот же контент ячейки, только обработчик по умолчанию усекает его, как отмечено в исходном вопросе.Переопределив событие и установив текст всплывающей подсказки (даже если это точно такой же текст ячейки!), Теперь ограничение длины по умолчанию, похоже, исчезло.

protected override void OnCellToolTipTextNeeded(DataGridViewCellToolTipTextNeededEventArgs e)
{
    if((e.RowIndex >= 0) && (e.ColumnIndex >= 0))
    {
        // By setting this explicitly we can make the ToolTip length
        // longer even though the content is exactly the same.
        e.ToolTipText = this[e.ColumnIndex, e.RowIndex].Value.ToString();
    }
    base.OnCellToolTipTextNeeded(e);
}

Другие элементы управления, конечно, будут запускать разные события, но этоСледует помнить, что если вы поместите текст на подсказку самостоятельно, вы сможете обойти усечение, которое происходит с любой всплывающей подсказкой по умолчанию.

...