gpt4 book ai didi

c# - 如何增加 WinForms 中 ListViewItems 的 AutoPopDelay 值?

转载 作者:太空宇宙 更新时间:2023-11-03 11:40:38 25 4
gpt4 key购买 nike

您知道 ListView 中的每个项目都有一个 ToolTipText 属性,仅此而已!没有像 AutoPopDelay 这样的属性来设置它的显示时间...始终是默认值,5000 毫秒。我试图将 ToolTip 关联到每个项目,但这似乎是不可能的。

有没有办法增加 ListViewItemToolTipText 属性的显示时间?

最佳答案

您可以使用 LVM_GETTOOLTIPS 获取 ListViewToolTip , 然后发送 TTM_SETDELAYTIME将消息发送到工具提示,并通过将 TTDT_AUTOPOP 作为 wparam 并将以毫秒为单位的延迟作为 lparam 传递来设置其延迟。

还要确保 ListViewShowItemsToolTip 属性已设置为 true,并且项目有工具提示。

[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
const int LVM_GETTOOLTIPS = 0x104E;
const int TTM_SETDELAYTIME = 0x403;
const int TTDT_AUTOPOP = 2;

private void button1_Click(object sender, EventArgs e)
{
var tooltip = SendMessage(listView1.Handle, LVM_GETTOOLTIPS, 0, 0);
SendMessage(tooltip, TTM_SETDELAYTIME, TTDT_AUTOPOP, 10000 /*milliseconds*/);
}

要设置初始延迟或重新显示延迟,请为 wparam 设置以下值:

const int TTDT_AUTOMATIC = 0;
const int TTDT_AUTOPOP = 2;
const int TTDT_INITIAL = 3;

关于c# - 如何增加 WinForms 中 ListViewItems 的 AutoPopDelay 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4899687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com