我们先来看下效果实现的前后对比。
实现前的效果
实现后的效果
|---------------------------------------------------------------------------------------------------------------|
说明一下:Switch 中的数据(True/False)表示开关,是直接从数据库中获取的(字符类型)。在数据集显示到DataGridView 控件后是这个样子的:
我需要数据集显示到DataGridView 控件后的效果的这个样子的:
没错,就是在Switch栏中用CheckBox 复选框代替文本。
代码如下:
var ItemsData = QueryItemsData(); // QueryItemsData为查询方法,将查询返回的数据交给ItemsData
dataGridView.DataSource = new BindingList<Class.LoadTestItemsClass.ItemsInfo>(ItemsData);// dataGridView 控件绑定数据源ItemsData
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
if (dataGridView.Rows[i].Cells["Switch"].Value.ToString() == "True")
{
dataGridView["Switch", i] = new DataGridViewCheckBoxCell(); // 重点在这里
dataGridView["Switch", i].Value = true.ToString(); // 重点在这里
}
else
{
dataGridView["Switch", i] = new DataGridViewCheckBoxCell(); // 重点在这里
dataGridView["Switch", i].Value = false.ToString(); // 重点在这里
}
}
注释掉 for 循环就还原到了没有CheckBox复选框的状态。
我这样做的最终目的是想直接通过CheckBox 的勾选就可以直接修改这个开关的状态,而不需要通过打字来修改 True/False ,这个功能后面再单独开一遍。