如何在winForm中,禁止DataGrid的某一行不能编辑,除了设这行的ReadOnly=true。
如何在winForm中,禁止DataGrid的某一行不能编辑,除了设这行的ReadOnly=true。
------解决方案--------------------除非在DataGrid.ColumnChanging事件中處理: 
 1.注冊事件 
 this.myDataSet.Tables[this.myDataMember].ColumnChanging+=new DataColumnChangeEventHandler(this.DataColumn_ColumnChanging); 
 2.處理事件 
 private void DataColumn_ColumnChanging(object sender,System.Data.DataColumnChangeEventArgs e) 
 { 
 	#region 輸入資料檢測 
 	try 
 	{ 
 		if(this.dataCenter1.EditModel && ( "emp_code,bank_code ").ToLower().IndexOf(e.Column.ColumnName.ToLower())> =0) 
 		{ 
 			if(e.Row[e.Column.ColumnName,(e.Row.RowState==DataRowState.Detached?DataRowVersion.Proposed:(e.Row.RowState==DataRowState.Added?DataRowVersion.Default:DataRowVersion.Original))]!=e.ProposedValue) 
 			{ 
 				//是否恢複表格的值 
 				bool ifRestore=false; 
 				switch(e.Column.ColumnName.ToLower()) 
 				{ 
 					case  "emp_code ":					 
 						// 
 						break; 
 					case  "bank_code ": 
 						// 
 						break; 
 				} 
 				if(ifRestore) 
 				{ 
 					if(e.Row.RowState==DataRowState.Detached) 
 						e.ProposedValue=e.Row[e.Column.ColumnName,DataRowVersion.Proposed]; 
 					else if(e.Row.RowState==DataRowState.Added) 
 						e.ProposedValue=e.Row[e.Column.ColumnName]; 
 					else 
 						e.ProposedValue=e.Row[e.Column.ColumnName,DataRowVersion.Original]; 
 				} 
 			} 
 		} 
 	} 
 	catch(Exception ex) 
 	{ 
 		MessageBox.Show(ex.Message, "Error ",MessageBoxButtons.OK,MessageBoxIcon.Error); 
 	} 
 	#endregion 
 }
------解决方案--------------------回yangpeiyu(︷1.Er℡﹎): 
 如果我给某列加上事件响应,这也叫编辑啊。
------解决方案--------------------我没有用datagrid,我用的是gridex,有一人事件rowediting 进行管理。