1

I have a ListView on a Form with Checkboxes enabled. Here's a simple example program:

[STAThread]
static void Main ()
{
    var form = new Form();
    var listView = new ListView() {
        Dock = DockStyle.Fill, CheckBoxes = true, View = View.List };
    listView.Items.Add("a");
    listView.Items.Add("b");
    listView.Items.Add("c");
    form.Controls.Add(listView);
    Application.Run(form);
}

If you run this program, try drag-selecting two or three ListView items. This works fine. But now try again and "accidentally" release your mouse button on top of a CheckBox.

The result is that the CheckBox below the mouse cursor itself isn't affected, but all the other selected items get checked/unchecked depending on the state of that one CheckBox. End-users find this behavior erratic, and I agree.

Is there a simple way to suppress such accidental CheckBox changes when drag-selecting ListView items?

4

1 に答える 1

0

Better ListView Expressを試すこともできます。これは無料で、マネージ コードで書き直され、非常に成熟したコントロールです。

通常の .NET ListView のチェック ボックスの動作とその他の不具合は、ここで修正されています。たとえば、チェック ボックスは完全にアニメーション化されており (ホット状態と押された状態)、ラジオ ボタンを使用することもできます...

コントロールは、商用でも使用できます。3 段階のチェック ボックスもサポートするフル バージョンもあります。

チェック ボックスは、詳細だけでなく、すべてのビューでサポートされています。

ここに画像の説明を入力

于 2012-12-14T04:38:35.433 に答える