我用vs2005的c#,widows应用程序中,在datagridview控件中绑定数据,删除记录,我的第一列是checkbox,我怎么用语句来判断它的check与否啊?比如打上勾子,去掉勾子.还有就是能在dataGridView中添加一个 按扭列吗?点了按扭就删除改行?

解决方案 »

  1.   

    我在2003中是這樣做的。假設check在第一列
    foreach( DataRow in DataView.Table.Rows )
    {
      if( (bool)r[0] )
      {
         //do your work;
       }
    }
    不知道2005中的dataGridview是否也可以這樣。
      

  2.   

    不行, foreach (System.Windows.Forms.DataGridViewRow r in dataGridView1.Rows)
                {
                    if((bool)r[0])(此处抱错)
                    {
                        MessageBox.Show("kkkkk");
                    }
                }
          无法将 "System.Windows.Forms.DataGridViewCell"转换为bool
      

  3.   

    单击行头选中一行
    点击delete键
      

  4.   

    刚好借楼主宝地问个问题:我用 this.dataGridViewListUser.Rows.RemoveAt(Convert.ToInt16(selectRow));
    RemoveAt来删除某行,可以删除,但是不能更新到数据库 那个大侠告诉下我怎么把这个数据更新啊 ?? 
      

  5.   

    才发现能点行头判断是否 选中,用那个checkbox多此一举,多谢多谢。
      zerg318  你 没写sql语句怎么 会自动 更新到数据库呢?
      

  6.   

    if((bool)r[0].cells[0].value)
    改成这样试试?
      

  7.   

    RemoveAt()后,再用和它关联的TableAdapter.update()下。不过在TableAdapter里要有delete语句
      

  8.   

    是的 不知道怎么我用TableAdapter.update()还是没更新 成功  也不报错的
    方向对了 我再去找找那里错了
      

  9.   

    改成这样还是不行 
      foreach (System.Windows.Forms.DataGridViewRow r in dataGridView1.Rows)
                {
                    if((bool)r[0].cells[0].value)
                    {                
                        MessageBox.Show("kkkkk");
                    }
                }
               无法将带[]的索引应用于"System.Windows.Forms.DataGridViewRow"类型的表达式
       checkbox真是难加!
      

  10.   

    update(DataSet)成功了,但是update(TableAdapter.getdata()) 更新不了
    回到楼主的问题:
    遍历你的CheckBox列:
    如果是被选中了就执行
    dataGridView1.Rows.RemoveAt(当前遍历的单元所在的行序号);
     
    最后TableAdapter.update(绑定的DataSet);
      

  11.   

    dataGridView 重的值在绑定出来后能不能写 代码 修改 要显示的值 啊?
      在页面初始 化时 :列check的值是 1 时 在dataGridView显示审核,
                        0 显示未审核 。
       
      还有就是 点删除按钮时 怎样弹出个 确定和取消 窗口 ,点确定执行操作,取消 不执行
      

  12.   

    zerg318() :我是在:dataGridView1 点右键 编辑列 设计里面 columnType 选 DataGridViewTextBoxColumn 加的 checkbox 。试了好久 没能 在 代码里得到 这写 checkbox,
     能给出点代码码?
      

  13.   

    删除前弹出个对话框就是 
     if (System.Windows.Forms.MessageBox.Show("您真的需要删除","取消", MessageBoxButtons.OKCancel) == DialogResult.OK){
    //删除操作
    }
      

  14.   

    晕 你的是WebForm啊 ??
      

  15.   

    我问的全是 winForm 的是不是有地方敲错了。  那个在vs2005的确是得不到
       不加那个了checkBox,反正在 左边 点就能选中行,判断行就好了,多谢各位!!
      

  16.   

    int count=this.dataSet11.Tables["XX"].Rows.Count;
     int i=0;
    for( i=0;i<count;i++)
    {
    bool n=dataGrid1.IsSelected(i);
    if(n==true)
    {DataRow rowNew=dataSet11.Tables[0].Rows[i];
    rowNew.Delete();
    }
    sqlDataAdapter1.Update(dataSet11,"XX");这段代码是在DataGrid中用的 偶在VS2003上调试通过的
      

  17.   

    哦 是通过dataGridView1.VirtualMode = true;
                dataGridView1.Columns.Insert(0, new DataGridViewCheckBoxColumn());添加的checkBox啊我用
    (bool)dataGridView1.Rows[e.RowIndex].Cells[0].Value
    可以取得checkbox的值啊 
    我在自己机器上测试可以的如果需要 我可以给你源程序 你加我MSN把 [email protected]