• winform datagridview在添加全选checkbox时提示:不能设置 selected 或 selected 既不是表 Table 的 DataColumn 也不是 DataRelation。


    在项目中,需要多选功能,于是在datagridview添加了一列DataGridViewCheckBoxColumn

    在给datagridview绑定完数据集之后,对全选进行操作的时候,发现总报错,报错内容如下:

    不能设置 selected 

    selected 既不是表 Table 的 DataColumn 也不是 DataRelation。

    在看到第一个错误信息的时候还有点懵,不知道是什么地方错了,导致不能设置,可是第二个错误一出来,马上就清楚明白了。原来是datagridview绑定的数据集没有selected这个字段。

    知道原因,就好解决了,我们只需在绑定数据集之前,往里面添加selected即可。

    加完之后就不报错啦。

    附:加全选的代码:

     1 #region CheckBox的添加
     2             //在左上角做一个全选
     3             ckBox = new CheckBox();
     4             Rectangle rect = dgv_drug_dict.GetCellDisplayRectangle(CSelect.Index, -1, false);
     5             ckBox.Size = new Size(10, dgv_drug_dict.ColumnHeadersHeight - 2);
     6             ckBox.AutoSize = true;
     7             rect.Y += 2;
     8             ckBox.Location = rect.Location;
     9             ckBox.Text = this.CSelect.HeaderText;
    10             CSelect.HeaderText = "";
    11             this.dgv_drug_dict.Controls.Add(ckBox);
    12             ckBox.Checked = false;
    13             ckBox.CheckedChanged += new EventHandler(ckBox_CheckedChanged);
    14             #endregion
     1 /// <summary>
     2         /// 多选框的选择
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         void ckBox_CheckedChanged(object sender, EventArgs e)
     7         {
     8             DataView dv = (DataView)dgv_drug_dict.DataSource;
     9             if (dv == null) return;
    10             this.dgv_drug_dict.EndEdit();
    11             for (int j = 0; j < dv.Count; j++)
    12             {
    13                 if (this.ckBox.Checked)
    14                     dv[j]["selected"] = "1";
    15                 else
    16                     dv[j][CConst.DGV_SELECTD] = DBNull.Value;
    17             }
    18             this.dgv_drug_dict.EndEdit();
    19             dgv_drug_dict.Invalidate();
    20         }
  • 相关阅读:
    window安装php的mongodb扩展
    Android NDK开发步骤(r9)
    osgViewer销毁bug
    C/C++ typedef用法
    Java并发编程:Lock
    java中构造器(Constructor)
    进程和线程关系及区别
    Java总结篇系列:Java泛型
    在powerdesigner中创建物理数据模型
    非常好的理解遗传算法的例子
  • 原文地址:https://www.cnblogs.com/wsn1203/p/10058536.html
Copyright © 2020-2023  润新知