首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么在winForm中,禁止DataGrid的某一行不能编辑,除了设这行的ReadOnly=true

2012-01-23 
如何在winForm中,禁止DataGrid的某一行不能编辑,除了设这行的ReadOnlytrue。如何在winForm中,禁止DataGrid

如何在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 进行管理。

热点排行