RowColChange事件是可以监听到的,只是你需要判断一下this.c1TrueDBGrid1.Focused。按照你描述的case,光标离开后会触发RowColChange事件,此时this.c1TrueDBGrid1.Focused为false。
不过这样带来的问题是,任何时候光标离开都会将ActiveCell置于最后一行。所以还需要挂OnAddNew事件,在实践中置flag为true。RowColChange时候,判断Focused&&flag,满足条件的话SetActiveCell然后置flag为false。
- private bool flag;
- private void c1TrueDBGrid1_OnAddNew(object sender, EventArgs e)
- {
- flag = true;
- }
- private void c1TrueDBGrid1_RowColChange(object sender, C1.Win.C1TrueDBGrid.RowColChangeEventArgs e)
- {
- if (!this.c1TrueDBGrid1.Focused && flag)
- {
- this.c1TrueDBGrid1.SetActiveCell(this.c1TrueDBGrid1.RowCount, 0);
- flag = false;
- }
- }
复制代码 |