【问题标题】:All select /deselect button所有选择/取消选择按钮
【发布时间】:2020-03-26 06:31:14
【问题描述】:

enter image description here我想在datagridview 中创建n 个“全选”按钮。 datagirdview 有复选框列。 如果我按下全选按钮,我可以选择整个选择。 如果我再次按下全选按钮,我想释放整个选择。 我只能 Select All ,没有 DeSelect All 。 请帮帮我:(

private void Btn_selectall_Click(object sender, EventArgs e)
    {           

        foreach (DataGridViewRow item in dataGridView1.Rows)
        {
            item.Selected = true;
            item.Cells[0].Value = true;
        }
    }

【问题讨论】:

  • 你需要同样的东西,而不是真的。您采用的代码选项取决于 Select all 的当前值。我不太确定问题是什么?

标签: c# datagridview deselect


【解决方案1】:

你可以试试这样的:

private void Btn_selectall_Click(object sender, EventArgs e)
{
    if (dataGridView1.Rows.Cast<DataGridViewRow>().All(r => r.Selected))
    {
        // deselect all
        foreach (DataGridViewRow item in dataGridView1.Rows)
        {
            item.Selected = false;
            item.Cells[0].Value = false;
        }
    }
    else
    {
        // select all
        foreach (DataGridViewRow item in dataGridView1.Rows)
        {
            item.Selected = true;
            item.Cells[0].Value = true;
        }
    }
}

【讨论】:

  • 谢谢。但我不能使用 dataGridView1.Rows.All 。全部不包含在datagridviewrowcolletion中
  • 这是System.Linq下的扩展方法,所以在文件顶部添加using System.Linq;
  • 我已经添加了。但它不能工作。感谢您的努力。
  • 啊,现在再试一次(见我添加了.Cast&lt;DataGridViewRow&gt;()
【解决方案2】:

你可以像这样反转值

item.Selected = !item.Selected;
item.Cells[0].Value = !item.Cells[0].Value;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2012-02-21
    相关资源
    最近更新 更多