1. DataGridViewCheckBoxColumn多选。
默认情况下,DataGridViewCheckBoxColumn不是Winform下的CheckBox,只是一个显示图像,所以需要通过操作缓存数据控制界面显示。
覆写OnCellValuePushed和OnCellValueNeeded方法,或添加相应事件:CellValuePushed,CellValueNeeded
下例中,CellValuePushed用于将界面勾选情况刷进缓存,CellValueNeeded用于将缓存数据显示在界面上(通过设置DataGridViewCellValue),chechState用来保存每个单元格的勾选情况。
private Dictionary<string, bool> m_checkState=new Dictionary<string, bool>();
protected override void OnCellValuePushed(DataGridViewCellValueEventArgs e)
{
if (!checkState.ContainsKey(checkField))
checkState.Add(checkField, Convert.ToBoolean(e.Value));
else
checkState[checkField] = Convert.ToBoolean(e.Value);
}
protected override void OnCellValueNeeded(DataGridViewCellValueEventArgs e)
{
if (checkState.ContainsKey(checkField))
e.Value = checkState[checkField];
else
e.Value