启用listview columHeader复选框单击

时间:2010-01-12 11:12:58

标签: c# listview

这里我只想在listview标题中设置复选框。我为此编写了以下代码,任何人都可以帮我在这里启用复选框。

现在我只能看到复选框 - 不要点击它。 有没有人对此有任何想法,它可以由listView3_ColumnClick事件处理.. ?? 提前谢谢。

private void listView3_DrawColumnHeader_1(object sender, DrawListViewColumnHeaderEventArgs e) 
    {

        TextFormatFlags flags = TextFormatFlags.LeftAndRightPadding;
        e.DrawBackground();

        //CheckBoxRenderer.DrawCheckBox(e.Graphics, ClientRectangle.Location, System.Windows.Forms.VisualStyles.CheckBoxState.UncheckedNormal);
        CheckBoxRenderer.DrawCheckBox(e.Graphics, ClientRectangle.Location, TextRectangle, "", this.Font, TextFormatFlags.HorizontalCenter, clicked, state);

        e.DrawText(flags);
    }

1 个答案:

答案 0 :(得分:0)

我想我已经有了

private void listView_ColumnClick(object sender, ColumnClickEventArgs e)
    {
        if (!clicked)
        {
            clicked = true;
            state = CheckBoxState.CheckedPressed;  

            foreach (ListViewItem item in listView.Items)
            {
                item.Checked = true;
            }

            Invalidate();
        }
        else
        {
            clicked = false;
            state = CheckBoxState.UncheckedNormal;
            Invalidate();

            foreach (ListViewItem item in listView.Items)
            {
                item.Checked = false;
            }
        }           
    }

wheres state =>  private CheckBoxState state = CheckBoxState.UncheckedNormal;