簡體   English   中英

如何為DataGridView創建自定義快捷方式?

[英]How to create custom shortcuts for DataGridView?

我試圖在Windows窗體的DataGridView控件中創建快捷方式(CTRL + J)。 該快捷方式應完全按照向下箭頭的方式進行操作(即,在大多數情況下,將選擇更改為下一項)。

如果FormKeyDown收到J鍵和Ctrl作為修飾符,我試圖通過覆蓋表單的FormKeyDown事件並使用SendKeys.SendWait("{DOWN}")處理CTRL + J。

但是,當我發送{DOWN}鍵時,它的作用類似於Ctrl + Down,因為用戶仍然按住CTRL鍵!

如何創建自定義快捷方式,使其行為與DataGridView已支持的快捷方式完全相同?

您應該避免依賴於使用SendKeys模仿用戶輸入,而是使用正確的API進行DataGridView類上可用的編程選擇。 您可以檢查以下頁面上的程序選擇部分:

Windows Forms DataGridView控件中的選擇模式

在實現用於程序選擇的代碼時,您需要考慮為數據網格視圖配置的SelectionMode


或者,您可以從DataGridView子類並實現您的自定義快捷方式,以便它們重定向到現有的快捷方式。 例:

public class MyDataGridView : DataGridView
{
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (keyData == (Keys.Control | Keys.J))
        {
            this.ProcessDownKey(Keys.Down);

            return true;
        }

        return base.ProcessCmdKey(ref msg, keyData);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM