如何让DATAGRID中的表即可以使用CHECKBOX,又不允许他追加新行 就是DATAGRID中的某一列是CHECKBOX....要让这列可操作,并且,不允许在表中继续追加新的1行(点下面空白的部分不是自动多个全为空的新的一行吗,这个功能不允许的)要两全齐美怎么半? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很简单,这个问题.private void dataGrid1_Click(object sender, System.EventArgs e){int index=this.dataGrid1.CurrentCell.RowNumber;if(index>-1){ if(this.dataGrid1.CurrentCell.ColumnNumber==3) { this.dataset11.卖.Rows[index]["卖"]=!((bool)this.dataset11.卖.Rows[index]["卖"]); this.dataset11.卖.AcceptChanges(); this.dataGrid1.DataSource=this.dataset11.卖; }}}这个是我做的"重排ULL"工具里的一节代码.就是在设DATAGRID为READONLY=TRUE时.点击CHECKBOX一样有反映的代码.绝对是你要的效果 this.dataset11.卖是DATASET中的一个表,这个DATAGRID的数据源原程序可以到http://www.ruichen.net/dispbbs.asp?boardID=15&ID=5126&page=1这个帖子里去下载(要注册)一个看看效果.压缩包里我放了一个ULL文件给你试用的 this.dataGrid1.CurrentCell.ColumnNumber==3 //是因为卖不卖这个BOOL字段是在DATATABLE的第4个字段 这样作还有个问题!!int index=this.dataGrid1.CurrentCell.RowNumber;if(index>-1){......如果没有数据...点在空的地方 得到的 CurrentCell.RowNumber 是 0如果有数据....点在空的地方 得到的是上次那行的 CurrentCell.RowNumber所以有数据还不会报错...没数据付值的时候就报错拉 还是没有看大懂你说的意思,那可不可以不让DataGrid显示底部的空行呢?假定你的DataGrid 是dataGrid1CurrencyManager cm = (CurrencyManager)this.BindingContext[dataGrid1.DataSource, dataGrid1.DataMember]; ((DataView)cm.List).AllowNew = false; to icephoenix57() 1.你一定只是测试了取当前列值.你并没有综合应用.你没看到if(this.dataGrid1.CurrentCell.ColumnNumber==3)吗.你点空白的地方就是白点.什么都不会做的2.很难想得出一个BOOL你让它为NULL做什么. 自己加个判断.是NULL就设为TRUE,不是NULL就把值设成相反的.这么简单的问题也要搞这么久..................不要死搬.一切要灵活 ((System.Data.DataTable )DataGrid1.DataSource).DefaultView.AllowNew =false;((System.Data.DataTable )DataGrid1.DataSource).DefaultView.AllowEdit =true; darkm00n(黑月)的方法简单有效,我刚试过,正确,楼主为什么还不结帖啊. sql2000 触发器 如何使用C#代码删除excel中指定工作表的前三行数据 怎么加dll到vs2005啊? 求救~~ 数组用变量赋值,怎么样在更改数组的同时变量也被更改 该用什么样的控件比较好,显示数据的同时可以编辑 怎么传递字符串。。。。急!!! 应用程序部署的问题 如何学好C# 点击datagrid某行的链接列时,怎样将该行中的各字段的内容传递到另外一个网页的相应的文本框中 用户控件传值问题! ListView的一个问题!!!
private void dataGrid1_Click(object sender, System.EventArgs e)
{
int index=this.dataGrid1.CurrentCell.RowNumber;
if(index>-1)
{
if(this.dataGrid1.CurrentCell.ColumnNumber==3)
{
this.dataset11.卖.Rows[index]["卖"]=!((bool)this.dataset11.卖.Rows[index]["卖"]);
this.dataset11.卖.AcceptChanges();
this.dataGrid1.DataSource=this.dataset11.卖;
}
}
}
这个是我做的"重排ULL"工具里的一节代码.就是在设DATAGRID为READONLY=TRUE时.点击CHECKBOX一样有反映的代码.绝对是你要的效果
this.dataset11.卖是DATASET中的一个表,这个DATAGRID的数据源原程序可以到http://www.ruichen.net/dispbbs.asp?boardID=15&ID=5126&page=1这个帖子里去下载(要注册)一个看看效果.压缩包里我放了一个ULL文件给你试用的
if(index>-1)
{
...
...如果没有数据...点在空的地方 得到的 CurrentCell.RowNumber 是 0
如果有数据....点在空的地方 得到的是上次那行的 CurrentCell.RowNumber所以有数据还不会报错...没数据付值的时候就报错拉
那可不可以不让DataGrid显示底部的空行呢?
假定你的DataGrid 是dataGrid1
CurrencyManager cm = (CurrencyManager)this.BindingContext[dataGrid1.DataSource, dataGrid1.DataMember];
((DataView)cm.List).AllowNew = false;
你没看到if(this.dataGrid1.CurrentCell.ColumnNumber==3)吗.你点空白的地方就是白点.什么都不会做的2.很难想得出一个BOOL你让它为NULL做什么.
((System.Data.DataTable )DataGrid1.DataSource).DefaultView.AllowEdit =true;