DataTable的数据类型为int,DataGridViewCheckBoxColumn绑定是时候已经设置了:CheckBoxColumn.ValueType = typeof(System.Int16);
CheckBoxColumn.TrueValue = 2;
CheckBoxColumn.FalseValue = 1;
CheckBoxColumn.DataPropertyName = (string)dr["CODZON"];
现在的问题是:为什么不管列的值是1还是2,CheckBox都是选中状态,而如果是0则为非选中状态。请问要如何设置才能达到我的目的呢?

解决方案 »

  1.   

    CheckBoxColumn.TrueValue = 1;
    CheckBoxColumn.FalseValue = 0;
    CheckBoxColumn.IndeterminateValue =0
      

  2.   


    private void dgvFileList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                if (dgvFileList.Columns[e.ColumnIndex] == CheckBoxColumn)
                {
                    e.Value--;//这样显示的值就由2和1变成1和0了,但是数据源的值不变。这里的Value仅仅跟显示有关而已。
                }
            }CellFormatting事件在一个单元格的内容被填充时触发。
      

  3.   

    测试OK,结贴散分。
    不过这微软也真不地道,既然有TureValue和FalseValue为什么还要去绕这么大个弯儿呢?