I have created a custom combo box(Text box, button and List View).

While typing in the text box, cursor disappears. How can I disable "Hiding cursor while typing" in my application.

I goggled and found that it is the system behavior called SPI_SETMOUSEVANISH. It can be turned off but it will affect applications.

How can I turn-off this only in my custom control?

4 Years
Discussion Span
Last Post by NidhiSree

You can do this by reflecting the cached SystemParameters information.

Add the PresentationFramework reference to your project, then look up System.Windows.SystemParameters. Pull back the field that has the name "MouseVanish" and use reflection to set that property to false.

You have to be aware though that this will affect your application at a global level, so if you want it only on one control, you will need to ensure that you turn it on and off when you enter and leave the control.


There is a solution.

If we set


we can keep the mouse pointer without hiding. While setting Capture property of ListView as true, It will capture the mouse events and mouse pointer wont be disappeared while typing in TextBox.

Another Problem.

I am using RichTextBox instead of TextBox. The above mentioned technique will not work with RichTextBox. That means mouse cursor will disappear while typing in RichTextBox even though ListView.Capture=true.

When using RichTExtBox and ListView.Capture=true, ListView captures mouse move and mouse click events but mouse pointer is disappearing. Any one know why it is happening like this?

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.