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

本文关键字:可见性 设置 false 光标 工具提示 | 更新日期: 2023-09-27 18:17:03

是否有可能在工具提示可见时将光标可见性设置为false,并在工具提示消失时再次返回true ?

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

As sa_ddam213说:

只需使用游标。没有产权


或者您可以手动设置一个透明的光标图像在ToolTip.Show()之前,ToolTip.Hide()之后只是显示正常的光标:

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

ToolTip.Hide();
CursorHandler.LoadCursor("ProjName.Resources.Normal.cur");

这是CursorHandler代码(我从http://www.codeproject.com/Articles/36540/Adobe-Eyedropper-Control):

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;
}