チェックボックスとC#のListViewコントロールは、自動チェックボックスは、複数の選択行をチェックします

StackOverflow https://stackoverflow.com/questions/2017170

質問

私は複数行にListViewコントロールを使用していますし、上の選択fullrow。私は一度に複数の行を選択していたとき、私の行の一部は、魔法の確認になります。これは、1つを選択する際に何度もマウスをドラッグするときに発生し、別のをクリックシフトします。

ここに画像記述する問題を参照してください。altテキスト

グレープフルーツで何が起こっていますか?誰ですか?

役に立ちましたか?

解決

は、残念ながら、リストビュークラスにバグがあり、これはその一つです。次のコードは、私のために働いた修正されます。

編集:それはあなたがあなたの質問に表示エラーを回避んが、申し訳ありませんが、これは、かなり右に動作しません。これは、複数の項目を選択し、チェックボックスをクリックして、それらをチェックしないように。

void SetupListView()
{
    listView.ItemCheck += new ItemCheckEventHandler(listView_ItemCheck);
    listView.MouseDown += new MouseEventHandler(listView_MouseDown);
    listView.MouseUp += new MouseEventHandler(listView_MouseUp);
    listView.MouseLeave += new EventHandler(listView_MouseLeave);
}

bool mouseDown = false;
void listView_MouseLeave(object sender, EventArgs e)
{
    mouseDown = false;
}

void listView_MouseUp(object sender, MouseEventArgs e)
{
    mouseDown = false;
}

void listView_MouseDown(object sender, MouseEventArgs e)
{
    mouseDown = true;
}

void listView_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if(mouseDown)
    {
        e.NewValue = e.CurrentValue;
    }
}

他のヒント

私は別のフォーラムでこれを答えます:

<のhref = "http://www.codeproject.com/Messages/3417741/Re-how-to-disable-multi-select-of-checkbox-in-list.aspx" のrel = "nofollowをnoreferrer" > http://www.codeproject.com/Messages/3417741/Re-how-to-disable-multi-select-of-checkbox-in-list.aspx の

HTH - hground

素朴な疑問をそれ `s ただ、これを試してください。

private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (ModifierKeys == Keys.Control || ModifierKeys == Keys.Shift)
    {
        e.NewValue = e.CurrentValue;
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top