/// <summary> /// 选择节点之前设定控件状态 /// </summary> private void treeListDept_BeforeFocusNode(object sender, BeforeFocusNodeEventArgs e) { try { if (bSDepartment.Current != null) { if (((DataRowView)bSDepartment.Current).IsEdit) { int oldId = e.OldNode == null ? 0 : DataTypeConvert.GetInt(e.OldNode["AutoId"]); DataRow dr = ((DataRowView)bSDepartment.Current).Row; if (dr.RowState == DataRowState.Added && oldId != 0) { return; } else { dr.RejectChanges(); editForm.Set_Button_State(true); editForm.Set_EditZone_ControlReadOnly(true); } } } } catch (Exception ex) { ExceptionHandler.HandleException(this.Text + "--选择节点之前设定控件状态错误。", ex); } }
/// <summary> /// 列表聚焦改变刷新当前选中行的信息 /// </summary> private void resourcesTreePlanTask_BeforeFocusNode(object sender, DevExpress.XtraTreeList.BeforeFocusNodeEventArgs e) { try { if (bSProjectPlanTask.Current != null && !isLockGrid) { bSProjectPlanTask.EndEdit(); DataRow dr = ((DataRowView)bSProjectPlanTask.Current).Row; if (e.OldNode != null) { int oldAutoId = DataTypeConvert.GetInt(e.OldNode["AutoId"]); DataRow[] olddrs; if (oldAutoId == 0) { olddrs = TableProjectPlanTask.Select("AutoId is null"); } else { olddrs = TableProjectPlanTask.Select(string.Format("AutoId = {0}", oldAutoId)); } if (olddrs.Length > 0 && dr == olddrs[0]) { if (dr.RowState != DataRowState.Unchanged) { if (MessageHandler.ShowMessageBox_YesNo("确认是否保存当前行信息?") == DialogResult.Yes) { if (!editForm.btnSave_Click()) { e.CanFocus = false; return; } } else { dr.RejectChanges(); editForm.Set_Button_State(true); editForm.Set_EditZone_ControlReadOnly(true); } } else { editForm.Set_Button_State(true); editForm.Set_EditZone_ControlReadOnly(true); } } } if (e.Node != null) { DataRow[] newdrs = TableProjectPlanTask.Select(string.Format("AutoId = {0}", DataTypeConvert.GetInt(e.Node["AutoId"]))); if (newdrs.Length > 0) { bSProjectPlanTask.Position = TableProjectPlanTask.Rows.IndexOf(newdrs[0]); if (resourcesTreePlanTask.FocusedNode == null) { bSProjectPlanTask_PositionChanged(null, null); } } } } } catch (Exception ex) { ExceptionHandler.HandleException(this.Text + "--列表聚焦改变刷新当前选中行的信息错误。", ex); } }