WinForms游标仅隐藏在一个Form上

我有一个C#应用程序有2个同时可见的窗体,我需要隐藏鼠标光标,当它只在其中一个上面时。 如果我使用Cursor.Hide(),它会为它们应用更改。

你可以制作一个“空白”光标,并设置myForm.Cursor = blankCursor; 这将使该特定表单显示特定的光标,该光标可以是完全透明的。

您需要通过使用MouseEnterMouseLeave事件来实现此逻辑,每个事件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.Nonethis.Cursor = Cursors.None ,而不是Cursor.Hide()

您可以使用Control.MouseEnter和Control.MouseLeave事件来触发隐藏或显示光标

如果您隐藏光标以便用户无法对表单执行任何操作,请考虑使用此this.UseWaitCursor = true; 代替。