日期:2014-05-17  浏览次数:20859 次

C# 2005 里如何在datagridview中做chckbox是否被选中
我想做一个全选.反选请各位高手帮下忙.小弟我急死了......

------解决方案--------------------
C# code

            for (int i = 0; i < dgMovie.Rows.Count; i++)
            {
                if (dgMovie.Rows[i].Cells["列名或索引"].Value as bool)
                {
                    dgMovie.Rows[i].Cells["列名或索引"].Value = false;
                }
                else
                {
                    dgMovie.Rows[i].Cells["列名或索引"].Value = true;
                }
            }

------解决方案--------------------
哥们问题解决了没?
我给你个全选和全不选的代码,不知道能不能满足你的要求,我的代码就是在datagridview中加一列复选框(这列复选框是在datagridview中添加列里边加的datagridviewcheckboxcolumn索引为0,也就是在datagridview的第一列),然后可以控制他们是否全选和全不选:
private void btnSelectAll_Click(object sender, EventArgs e)
{
//把datagridview的所有记录的第一列的复选框设为选中
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
this.dataGridView.Rows[i].Cells[0].Value = true;
}
}

private void btnCancelAll_Click(object sender, EventArgs e)
{
//把datagridview的所有记录的第一列的复选框设为不选
for (int i = 0; i < datagridview.Rows.Count; i++)
{
this.datagridview.Rows[i].Cells[0].Value = false;
}
}
//提交当前复选框的选择状态,复选框选或不选要提交下
private void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
this.dataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
//哥们要是符合你的需求的话,把分给了啊,哥们我穷死拉!:)
------解决方案--------------------
判断某条记录是否被选中:
if(dataGridView.Rows.Cuount!=0)//当前的记录不为空
{
for(int i=0;i<dataGridView.Rows.Count;i++)
{
if(dataGridView.Rows[i].Cell[0].EditedFormattedValue.ToString()=="True")//或者=="False"
{
//处理代码
}
}
}