Winform 中datagrid 的列怎样实现自动计算,计算的结果列也可以进行修改成任意数值 (高分)
比如:   Column1      Column2      Column3   
                      10                     20                     200   
 Column3   的值是   Column1   *   Column2 
 但是Column3也可以自行修改成任意数。 
 请问Winform中能这样处里吗? 
------解决方案--------------------没看懂你的意思 
 你说的是不是column3的值让它不能修改啊!! 
 创建一个tablestyle设置columns为readOnly!! 
 这样不就是不用修改了嘛? 
 示例如下: 
 private void Header订单() 
 		{		 
 			DataGridTableStyle tableStyle = new DataGridTableStyle();  			 
 			DataGridTextBoxColumn columnStyle = newDataGrid TextBoxColumn(); 
 			columnStyle.MappingName =  "订单ID "; 
 			columnStyle.HeaderText = "订单ID "; 
 			columnStyle.Width = 80; 
                            //就是这样里的属性 
 			columnStyle.ReadOnly = true; 
 			tableStyle.GridColumnStyles.Add(columnStyle);   
 			columnStyle = new DataGridTextBoxColumn(); 
 			columnStyle.MappingName =  "公司名称 "; 
 			columnStyle.HeaderText = "公司名称 "; 
 			columnStyle.Width = 80; 
 			columnStyle.ReadOnly = false; 
 			tableStyle.GridColumnStyles.Add(columnStyle);   
 			tableStyle.RowHeadersVisible =true; 
 			tableStyle.MappingName =  "订单 "; 
 			dtg订单.TableStyles.Add(tableStyle);		 
 		} 
 自动计算的话: 
 获取选中的行的行号: 
 rowcell 为当前的行号 
 dtg订单[rowcell,2] =dtg订单[rowcell,0] * dtg订单[rowcell,1]      
 //以下是判断行的状态是否已经被修改 
 if(dt订单.Rows[rowcell].RowState==DataRowState.Modified ) 
 //以下是判断行的状态是否已经被新增 
 if(dt订单.Rows[rowcell].RowState==DataRowState.Added)   
 具体自己看真做吧,也有点不明白你要求的意思 
 是增加一行记录的时候还是修改一行的记录的时候呢? 
------解决方案--------------------用 DataColumn class的Expression property    
     DataTable table = new DataTable ();    
     // Create the first column. 
     DataColumn priceColumn = new DataColumn(); 
     priceColumn.DataType = System.Type.GetType( "System.Decimal "); 
     priceColumn.ColumnName =  "price "; 
     priceColumn.DefaultValue = 50;        
     // Create the second, calculated, column. 
     DataColumn taxColumn = new DataColumn(); 
     taxColumn.DataType = System.Type.GetType( "System.Decimal "); 
     taxColumn.ColumnName =  "tax "; 
     taxColumn.Expression =  "price * 0.0862 ";        
     // Create third column. 
     DataColumn totalColumn = new DataColumn(); 
     totalColumn.DataType = System.Type.GetType( "System.Decimal "); 
     totalColumn.ColumnName =  "total "; 
     totalColumn.Expression =  "price + tax ";   
     // Add columns to DataTable. 
     table.Columns.Add(priceColumn); 
     table.Columns.Add(taxColumn); 
     table.Columns.Add(totalColumn);   
     DataRow row = table.NewRow(); 
     table.Rows.Add(row); 
     DataView view = new DataView(table); 
     dataGrid1.DataSource = view; 
------解决方案--------------------好像自行修改不行 楼主再看看