Cursor.Current與this.Cursor.Net中Cursor.Current和this.Cursor(在哪里this是WinForm)之間有區(qū)別嗎?我一直使用它this.Cursor并且運氣很好但是我最近開始使用CodeRush并且只是在“Wait Cursor”塊中嵌入了一些代碼而CodeRush使用了該Cursor.Current屬性。我已經(jīng)在互聯(lián)網(wǎng)和工作中看到其他程序員遇到了一些問題Cursor.Current。它讓我想知道這兩者是否存在差異。提前致謝。我做了一點測試。我有兩個winforms。我單擊form1上的一個按鈕,將Cursor.Current屬性設置為Cursors.WaitCursor,然后顯示form2。兩種形式的光標都不會改變。它仍然是Cursors.Default(指針)光標。如果我設置this.Cursor到Cursors.WaitCursor在Form1并顯示窗體2按鈕點擊事件,等待光標只顯示Form1上,默認光標在預計窗口2。所以,我還是不知道是什么Cursor.Current。
3 回答

達令說
TA貢獻1821條經(jīng)驗 獲得超6個贊
我相信Cursor.Current是當前正在使用的鼠標光標(無論它在屏幕上的什么位置),而this.Cursor是當鼠標經(jīng)過你的窗口時它將被設置的光標。

眼眸繁星
TA貢獻1873條經(jīng)驗 獲得超9個贊
實際上,如果你想從另一個線程中使用HourGlass,它會回復跨線程異常,因為你試圖從最初創(chuàng)建的表單以外的不同線程訪問f.Handle。使用GetForegroundWindow()而不是user32.dll。
[DllImport("user32.dll")]private static extern IntPtr GetForegroundWindow();
然后
public static bool Enabled{ get { return Application.UseWaitCursor; } set { if (value == Application.UseWaitCursor) { return; } Application.UseWaitCursor = value; var handle = GetForegroundWindow(); SendMessage(handle, 0x20, handle, (IntPtr)1); }}
- 3 回答
- 0 關注
- 1047 瀏覽
添加回答
舉報
0/150
提交
取消