13

デフォルトの動作では、CTRL+クリックを使用してデータグリッド内の項目を選択解除します

グリッド内の空白をマウスでクリック (左または右ボタン) して、選択した項目を選択解除できるようにしたいと考えています。

私はそれをグーグルで調べて、信じられないほど複雑な回避策を見つけましたが、簡単な解決策を望んでいます.

編集:

代わりにリストビューを使用していますが、まだ解決策が見つかりません。ただし、リストビューの方がスタイルが優れているため、リストビューの煩わしさはわずかに軽減されます。

4

5 に答える 5

3

シンプルな

<DataGrid MouseDown="DataGrid_MouseDown">

あなたが望むものではありませんか?

private void DataGrid_MouseDown(object sender, MouseButtonEventArgs e)
{
    (sender as DataGrid).SelectedItem = null;
}

唯一の欠点は、選択した項目を CTRL なしでクリックすると、選択がすべて解除されることです。

于 2012-05-20T02:23:02.637 に答える
0

ホワイトスペースなのかグレースペースなのかよくわかりません。後者の場合、次のようにします。

    private void dataViewImages_MouseUp(object sender, MouseEventArgs e)
    {
        DataGridView.HitTestInfo hit = dataViewImages.HitTest(e.X, e.Y);
        if (hit.Type != DataGridViewHitTestType.Cell)
           dataViewImages.ClearSelection();
    }

これは、灰色のスペースをクリックしてすべてのセルの選択を解除するために使用するものです。

于 2012-09-21T19:20:28.543 に答える