WinForms游标仅隐藏在一个Form上
我有一个C#应用程序有2个同时可见的窗体,我需要隐藏鼠标光标,当它只在其中一个上面时。 如果我使用Cursor.Hide(),它会为它们应用更改。
你可以制作一个“空白”光标,并设置myForm.Cursor = blankCursor;
这将使该特定表单显示特定的光标,该光标可以是完全透明的。
您需要通过使用MouseEnter
和MouseLeave
事件来实现此逻辑,每个事件forms如下:
private void frm1_MouseEnter(object sender, EventArgs e) { Cursor.Hide(); } private void frm1_MouseLeave(object sender, EventArgs e) { Cursor.Show(); }
在应该隐藏光标的表单上执行abobe并将其添加到应该使光标可见的表单中:
private void frm2_MouseEnter(object sender, EventArgs e) { Cursor.Show(); }
你试过this.Cursor = Cursors.None
吗this.Cursor = Cursors.None
,而不是Cursor.Hide()
?
您可以使用Control.MouseEnter和Control.MouseLeave事件来触发隐藏或显示光标
如果您隐藏光标以便用户无法对表单执行任何操作,请考虑使用此this.UseWaitCursor = true;
代替。