2009-02-06 27 views
0

我在應用程序中的某個區域中顯示的控件內有一個Data Grid View。即使網格視圖不重點,我是否可以處理關鍵事件?

我想這個活動網格刷新時按F5鍵。

當Activity Grid View通過處理Key Up事件成爲屏幕上當前的焦點元素時,很容易做到這一點,但是當另一個元素(例如菜單欄)是最後一件事情時,這顯然不起作用被點擊。

在這種情況下,有沒有辦法跟蹤按鍵?我沒有訪問我的數據網格視圖/控制之外的代碼。

對此的回答可能是一個明確的否定,但我想確保在做這項工作時我沒有失去明顯的東西。

+0

這個控件是否有公共刷新方法?如果有,那麼你應該能夠處理窗體上的所有F5按鍵,並且只需調用控件刷新方法即可。 – BFree 2009-02-06 18:47:21

回答

0

號如果您沒有訪問,可能當時有重點的其他控件,有沒有辦法通過從他們的關鍵消息給你的控制。

0

您可以在控件所在窗體上執行一些全局鍵盤事件處理。

如果您將此添加到表單中,您可以在發送到控件之前獲取全局關鍵事件。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    switch (keyData) 
    { 
     case Keys.F5: 
      // Send Refesh Event To Grid 
      return true; // Mark Key As Handled 

      // Add Any Extra Command Keys Here 
    } 

    return base.ProcessCmdKey(ref msg, keyData); // Resend To Base Function 
} 
0

您是否嘗試捕獲窗體本身上的事件,然後調用數據網格的事件處理程序?您必須將KeyPreview設置爲true才能使表單獲得鍵盤事件通知。

相關問題