winform中的dataGrid,我怎样实现在第一列离开的时候,监测我的数据的有效性?我用了CurrentCellChanged事件,但总是触发的不对,我用int CurrentRowIndex=((DataGrid)sender).CurrentCell;if(CurrentRowIndex=0){ MyDataValidate() }else{ throw new Exception();},出现的问题是当我离开当前单元格时,在同一行中,我写的根本不会触发,焦点离开当前行,才触发下一行的这个事件,焦点回到这行,才会触发我刚才写入的数据的有效性,我的目的:在焦点离开第一列,就触发该单元格的数据有效性监测,其中第二列的Readonly=true,谢谢!
建议把你的检查方法写到
dataGridTextBoxColumn.TextBox 的leave 或textchange事件中去!
如果你不是自定义的,请用下面方法:
DataView tv = (DataView) dataGrid1.DataSource;
DataGridTableStyle ts = new DataGridTableStyle();
ts.MappingName = tv.Table.TableName;
int numCols = tv.Table.Columns.Count;
int i=0;
DataGridTextBoxColumn aColumnTextColumn;
while (i < numCols) //重绘所有的列
{
aColumnTextColumn = new DataGridTextBoxColumn();
if(i==0)
aColumnTextColumn.TextBox.Leave += new System.EventHandler(Column1_Leave);
aColumnTextColumn.MappingName = tv.Table.Columns[i].ColumnName;
ts.GridColumnStyles.Add(aColumnTextColumn); //增加一种自定义的column风格
i ++;
}
dataGrid1.TableStyles.Add(ts);