Reputation: 2320
I have a C# application with 2 simultaneous visible forms, and I need to hide mouse cursor when it is over only on one of them. If I use Cursor.Hide() it applies the change for both of them.
Upvotes: 3
Views: 4621
Reputation: 88796
If you're hiding the cursor so that the user can't do anything on the form, consider using this.UseWaitCursor = true;
instead.
Upvotes: 0
Reputation: 3965
You need to implement this logic by using the MouseEnter
and MouseLeave
events one each form something like:
private void frm1_MouseEnter(object sender, EventArgs e)
{
Cursor.Hide();
}
private void frm1_MouseLeave(object sender, EventArgs e)
{
Cursor.Show();
}
do the abobe on the form that should hide the cursor and add this to the form that should make the cursor visible:
private void frm2_MouseEnter(object sender, EventArgs e)
{
Cursor.Show();
}
Upvotes: 4
Reputation: 564451
You can make a "blank" cursor, and set myForm.Cursor = blankCursor;
This will make that specific form show a specific cursor, which could be completely transparent.
Upvotes: 1
Reputation: 2715
You could use the Control.MouseEnter and Control.MouseLeave events to trigger hiding or displaying the cursor
Upvotes: 0
Reputation: 11567
Did you try this.Cursor = Cursors.None
, instead of Cursor.Hide()
?
Upvotes: 0