Как увеличить значение AutoPopDelay для ListViewItems в WinForms? - PullRequest
1 голос
/ 04 февраля 2011

Вы знаете, что каждый элемент в ListView имеет свойство ToolTipText, и это все! Нет такого свойства, как AutoPopDelay для установки времени отображения ... Всегда значение по умолчанию, 5000 мс. Я пытался связать ToolTip с каждым элементом, но это кажется невозможным.

Есть ли возможность увеличить время отображения свойства ToolTipText для ListViewItem?

Ответы [ 3 ]

1 голос
/ 26 февраля 2011

MouseHover срабатывает один раз для каждого элемента управления - поэтому никогда не обновляется при переходе к различным элементам.

Используйте ListView.ItemMouseHover, чтобы выполнить то, что вам нужно.

void listView1_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e)
{
    this.toolTip1.SetToolTip(e.Item.ListView, e.Item.ToolTipText);
}
0 голосов
/ 26 апреля 2019

Вы можете получить ToolTip из ListView, используя LVM_GETTOOLTIPS, затем отправить сообщение TTM_SETDELAYTIME в подсказку и установить его задержку, передав TTDT_AUTOPOP как wparam, а задержка в миллисекундах как lparam.

Также убедитесь, что для свойства ShowItemsToolTip для ListView установлено значение true, а элементы имеют всплывающую подсказку.установите начальную задержку или задержку повторного показа, установите следующие значения для wparam:

const int TTDT_AUTOMATIC = 0;
const int TTDT_AUTOPOP = 2;
const int TTDT_INITIAL = 3;
0 голосов
/ 05 февраля 2011

Гансу Пассанту.

Я использовал этот код в событии MouseHover:

    Point pntOnList = lsvSource.PointToClient
        (new Point(Cursor.Position.X, Cursor.Position.Y));
    ListViewItem lsviUnderMouse =
        lsvSource.GetItemAt(pntOnList.X, pntOnList.Y);
    if (lsviUnderMouse != null)
    {
        ttipDetails.SetToolTip(lsvSource, lsviUnderMouse.ToolTipText);
        ttipDetails.Active = true;
    }
    else
    {
        ttipDetails.Active = false;
    }

Но ведет себя странно. На самом деле текст подсказки всегда устарел.

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