回复 23楼q406157290的帖子
您说的不会处于编辑状态是指没有输入光标吗?我这里设置上e.cancle = true;依旧可以显示验证结果的,如果可以发一个Demo我给你看看吧。
这是我原先的代码(加入您所提到的e.Cancel = true;)
- private void myCheck_RowEditEnding(object sender, C1.WPF.FlexGrid.CellEditEventArgs e)
- {
- C1FlexGrid flexGrid = sender as C1FlexGrid;
- // 满足某些条件时出现验证错误
- if (Verify(e.Row))
- {
- ((DataObject)flexGrid.SelectedItem).UpdateErrorMessage = "Error!!";
- // 重绘当前行
- flexGrid.Invalidate(new CellRange(e.Row, -1, e.Row, flexGrid.Columns.Count - 1));
- // 重绘该行行头部分,已显示小红点提示
- flexGrid.RowHeaders.Invalidate();
- e.Cancel = true;
- }
- else
- {
- ((DataObject)flexGrid.SelectedItem).UpdateErrorMessage = "";
- }
- // 当有验证错误时,取消行编辑
- Row r = flexGrid.Rows[e.Row];
- foreach (Column c in flexGrid.Columns)
- {
- if (!string.IsNullOrEmpty(r.GetErrors(c)))
- {
- e.Cancel = true;
- return;
- }
- }
- }
复制代码
执行效果如下图:
|