DataGridView控件中CheckBox列的使用
做Windows Form程序开发的人对.NET中的DataGridView控件一定都不陌生,平时用的最多的就是数据表格的显示,一般ColumnType都是DataGridViewTextBoxColumn类型的,在此根据一个实例交流一下DataGridView中DataGridViewCheckBoxColumn类型的列的基本使用。
前段时间编写一个基于WebService的短信收发程序,其中有一个短信群发功能,如图1所示,既可以手工键入数字添加电话号码,也可以从数据库的联系人记录中选取收件人电话号码。
图1: 短信发送界面
手动键入数字添加号码的方式在此不作讨论,单击“电话薄”按钮,弹出图2所示界面。
图2:从数据库联系人记录中选择短信接收人界面
对于.NET中寻常的CheckBox控件来说,无需任何代码,在程序运行时点击CheckBox控件即可切换其选中状态。但是在DataGridView控件中的DataGridViewTextBoxColumn类型的列,要实现如此功能,却要借助一定的代码来实现。在程序中,添加DataGridView控件的CellContentClick事件,代码如下:

private void dgvAllUser_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0 && e.RowIndex != -1)
{
if ((bool)dgvAllUser.Rows[e.RowIndex].Cells[0].EditedFormattedValue == true)
{
dgvAllUser.Rows[e.RowIndex].Cells[0].Value = false;
}
else
{
dgvAllUser.Rows[e.RowIndex].Cells[0].Value = true;
}
}
}
注意判断条件if ((bool)dgvAllUser.Rows[e.RowIndex].Cells[0].EditFormattedValue == true),获取CheckBox的值需用EditFormattedValue或者FormattedValue,而不能使用Value。然后再“添加”按钮的Click事件中用一个循环将处于选中状态的CheckBox所对应的列的联系人的电话号码(dgvAllUser.Rows[i].Cells[4].Value.ToString())添加到短信发送界面的收件人号码列表中。
出处:http://www.cnblogs.com/hans_gis/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。