gpt4 book ai didi

c# 使 ShowItemToolTips 变粘

转载 作者:行者123 更新时间:2023-11-30 19:34:53 27 4
gpt4 key购买 nike

我有一个 ListView,其中有几个项目的文本多于列宽。 ShowItemToolTips 意味着我可以将鼠标悬停在列上并查看全文,这很棒。

但是,对于非常长的文本,它会在有时间阅读所有内容之前消失,所以我想让它停留更长的时间(或者可能直到手动关闭,例如通过移开鼠标或单击。我该怎么做这个?

最佳答案

当然,您知道在 .NET ListView 类下面是一个 Windows ListView 控件。此 ListView 控件使用 Windows 工具提示控件来显示截断的字符串。

您可以通过 LVM_GETTOOLTIPS 消息获取此底层工具提示控件。

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg,
int wParam, int lParam);

public IntPtr GetTooltipControl(ListView lv) {
const int LVM_GETTOOLTIPS = 0x1000 + 78;
return SendMessage(lv.handle, LVM_GETTOOLTIPS, 0, 0);
}

获得工具提示控件的句柄后,即可向其发送消息。

public void SetTooltipDelay(ListView lv, int showTime) {
const int TTM_SETDELAYTIME = 0x400 + 3;
const int TTDT_AUTOPOP = 2;

IntPtr tooltip = this.GetTooltipControl(lv);
if (tooltip != IntPtr.Zero) {
SendMessage(tooltip, TTM_SETDELAYTIME, TTDT_AUTOPOP, showTime);
}
}

showTime 是您希望控件保持可见的毫秒数。

关于c# 使 ShowItemToolTips 变粘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870073/

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