没招式了,贴代码了.. 关于DATAGRID的

A59229617 2006-05-05 08:45:18
this.dbAdap = new System.Data.SqlClient.SqlDataAdapter(mySQL,dbSqlConn);//建立数据适配器
this.dbAdap.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] {//绑定数据表格 new System.Data.Common.DataTableMapping("Table", "orderTable")});
this.dbDS = new System.Data.DataSet();//建立数据集合
dc=new System.Data.DataColumn();
dc.ColumnName="选择";
dc.DataType=System.Type.GetType("System.Boolean");
dc.ReadOnly=false;
dc.DefaultValue=false;
dbDS.Clear();//数据集合清除为空
dbAdap.Fill(dbDS);//填充数据集合
mainDataGrid.SetDataBinding(dbDS,"orderTable");
this.dbDS.Tables[0].Columns.Add(dc);
我在建立好和绑定的 dataSet 添加了一行,在里面添加了checkbox .
checkbox 是可以在dataGrid 中显示了,但是不能触发事件.我就注册了一个dataGrid的mainDataGrid_MouseDown事件.
判断点击的单元格 来修改 checkbox 的值.. 修改一个没问题
但是不能修改 一组这样的"checkbox".
谁能告诉我怎么实现这样的功能?我前面的思路错哪了?有什么办法能实现这个功能?

我实现的功能很简单 就是在datagrid中多添加一列 这列中是 一组checkbox 实现checkbox的点击事件来修改boolean的值...
也不知道怎么让我弄的这么复杂?
最后谢谢回复和路过的! 谢谢!!


...全文
190 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
A59229617 2006-05-06
  • 打赏
  • 举报
回复
这样添加进去的是数据 ,不是控件!!!
操作起来很麻烦的..
A59229617 2006-05-06
  • 打赏
  • 举报
回复
上面的程序看明白了..
我在实际运用中, 把DATAGRID 设置成 不可编辑的 ,然后把 添加进去的一列设置成可编辑的,出现很奇怪的现象........
A59229617 2006-05-06
  • 打赏
  • 举报
回复
谢谢!!
A59229617 2006-05-06
  • 打赏
  • 举报
回复
是 AllowDBNull 把.
谢谢了!
Knight94 2006-05-06
  • 打赏
  • 举报
回复
参看
http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx#q754q
http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx#q831q
AlphaGroup 2006-05-06
  • 打赏
  • 举报
回复
很奇怪的现象是不是有三态
嘿嘿
把allownull设置成false
AlphaGroup 2006-05-05
  • 打赏
  • 举报
回复
winform只需要在DataGrid建一个bool列style就可以了。
确点是不能“完全”实时反映数据变化。
AlphaGroup 2006-05-05
  • 打赏
  • 举报
回复
winform只需要在DataGrid建一个bool列style就可以了。
A59229617 2006-05-05
  • 打赏
  • 举报
回复
checkbox
是嵌入DATAGRID的...........
hwchen 2006-05-05
  • 打赏
  • 举报
回复
你可以做个按钮,点击这个按钮凡是打了钩的checkbox就改变值啊
A59229617 2006-05-05
  • 打赏
  • 举报
回复
private void mainDataGrid_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{


DataGrid mainDataGrid = (DataGrid) sender;
System.Windows.Forms.DataGrid.HitTestInfo hti;
hti = mainDataGrid.HitTest(e.X, e.Y);
switch (hti.Type)
{

case System.Windows.Forms.DataGrid.HitTestType.Cell :
if(hti.Column==5)
{
//message += "cell at row " + hti.Row + ", col " + hti.Column;
DataGridCell dc = new DataGridCell();
dc.RowNumber = mainDataGrid.CurrentCell.RowNumber ;
dc.ColumnNumber = mainDataGrid.CurrentCell.ColumnNumber;
object myOrderId=mainDataGrid[mainDataGrid.CurrentCell=dc];
if(myOrderId.Equals(false))
{
mainDataGrid[mainDataGrid.CurrentCell=dc]=true;
}
else{
mainDataGrid[mainDataGrid.CurrentCell=dc]=false;
}
MessageBox.Show ("message",myOrderId.ToString());
}
break;
}


}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧