C#工具提示:需要将光标可见性设置为false吗

C#工具提示:需要将光标可见性设置为false吗,c#,.net,winforms,C#,.net,Winforms,当工具提示可见时,是否可以将光标可见性设置为false;当工具提示消失时,是否可以将光标可见性设置为true 正如sa_ddam213所说: 只需使用 或者,您可以手动执行此操作,方法是在ToolTip.Show()之前和ToolTip.Hide()之后设置一个透明的光标图像,只需显示普通光标: CursorHandler.LoadCursor("ProjName.Resources.Invisible.cur"); ToolTip.Show(); 以下是CursorHandler代码(我

当工具提示可见时,是否可以将光标可见性设置为false;当工具提示消失时,是否可以将光标可见性设置为true

正如sa_ddam213所说:

只需使用


或者,您可以手动执行此操作,方法是在
ToolTip.Show()
之前和
ToolTip.Hide()之后设置一个透明的光标图像,只需显示普通光标:

CursorHandler.LoadCursor("ProjName.Resources.Invisible.cur");
ToolTip.Show();

以下是CursorHandler代码(我从中获得):


是的,这是可能的,只要在tootip打开时将光标设置为none,然后在打开时将光标设置回nonecloses@sa_ddam213回答这个问题?:)让用户很难消除工具提示只是恶意的。不要这样做。很难相信这样做会像隐藏光标一样。工具提示窗口自己控制光标,您无法轻松访问它们的消息处理程序。特别值得注意的是,根本没有使用LoadCursor()的返回值。你真的测试过吗?
ToolTip.Hide();
CursorHandler.LoadCursor("ProjName.Resources.Normal.cur");
public class CursorHandler
{
 [DllImport("user32.dll")] 
 private static extern IntPtr LoadCursorFromFile(string fileName);

public static Cursor LoadCursor(string resourcePath)
{
    Cursor c = new Cursor(getCursorHandle(resourcePath));
    return c;
}    

private static IntPtr getCursorHandle(string resourcePath)
{
    //Load cursor from Manifest Resource to Stream 
    Stream streamFrom =
    Assembly.GetExecutingAssembly().GetManifestResourceStream(resourcePath);
    Stream streamTo =
    File.Create(Environment.GetEnvironmentVariable("TEMP") + @"\~cur.tmp");
    BinaryReader br = new BinaryReader(streamFrom);
    BinaryWriter bw = new BinaryWriter(streamTo);
    //Write cursor to temporary file 
    bw.Write(br.ReadBytes((int)streamFrom.Length));
    bw.Flush();
    bw.Close();
    br.Close();
    bw = null;
    br = null;
    streamFrom.Close();
    streamTo.Close();
    streamFrom = null;
    streamTo = null;
    //Load handle of temporary cursor file 
    IntPtr hwdCursor = LoadCursorFromFile(
    Environment.GetEnvironmentVariable("TEMP") + @"\~cur.tmp");
    //Delete temporary cursor file 
    File.Delete(Environment.GetEnvironmentVariable("TEMP") + @"\~cur.tmp");
    return hwdCursor;
}