2012-03-02 22 views
0

私はDataGridViewオブジェクトを持っています。これは、どのフィルタ設定が有効になっているかによって、行が隠されていることがあります。 DGVのMultiSelect設定をTrueに設定し、別のボタンをクリックすると、各行のIDがListBoxに移動します。しかし、CTRL-Aを押すと、非表示の行も含めてすべての行が移動されることに気付きました。 VisibleプロパティをFalseに変更して行を隠しています。CTRL-AはDataGridViewの非表示の行を選択します

私は周りを見回しましたが、CTRL-Aコマンドで表示可能な行のみを選択する解決策が見つかりませんでした。これは可能ですか?

ありがとうございます!

答えて

5

グリッドのKeyDownイベントを処理することで、このカスタム動作を実装できます。あなたの場合は、次のように書くことができます:

private void grid_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A) 
    { 
     foreach (DataGridViewRow row in grid.Rows) 
     { 
      row.Selected = row.Visible; 
     } 
     e.Handled = true; 
     e.SuppressKeyPress = true; 
    } 
} 
関連する問題