在我的Windows應用程序中,我想隱藏以及禁用任何鼠標移動,因爲我正在從我的應用程序中處理它。我可以將光標的位置設置爲一個點,但是如果用戶移動鼠標,則它會改變位置。如何在C中禁用鼠標移動#
如何阻止用戶輸入移動鼠標?
在我的Windows應用程序中,我想隱藏以及禁用任何鼠標移動,因爲我正在從我的應用程序中處理它。我可以將光標的位置設置爲一個點,但是如果用戶移動鼠標,則它會改變位置。如何在C中禁用鼠標移動#
如何阻止用戶輸入移動鼠標?
Cursor.Hide()方法。它仍然是可移動的,但隱藏起來。 您也可以處理MouseMove事件並設置Cursor.Position。
使您的表單實現IMessageFilter。然後用下面的代碼在窗體隱藏光標,但要確保鼠標左/右單擊禁用過
Rectangle BoundRect;
Rectangle OldRect = Rectangle.Empty;
private void EnableMouse()
{
Cursor.Clip = OldRect;
Cursor.Show();
Application.RemoveMessageFilter(this);
}
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == 0x201 || m.Msg == 0x202 || m.Msg == 0x203) return true;
if (m.Msg == 0x204 || m.Msg == 0x205 || m.Msg == 0x206) return true;
return false;
}
private void DisableMouse()
{
OldRect = Cursor.Clip;
// Arbitrary location.
BoundRect = new Rectangle(50, 50, 1, 1);
Cursor.Clip = BoundRect;
Cursor.Hide();
Application.AddMessageFilter(this);
}
感謝回覆,但它只隱藏光標,它不會禁用鼠標移動。 – Abhishek
實際上,這應該將鼠標保持在屏幕的座標:[50,50]處。 – annonymously
你不應該從源代碼中複製它的代碼嗎?請參閱[禁用鼠標移動並在c#中完全單擊](http://stackoverflow.com/a/2698843/719186) – LarsTech
它不是重複只是試着去了解的功能secanario。 – Abhishek