| | |
| | | using DevExpress.XtraBars; |
| | | using DevExpress.XtraEditors; |
| | | using DevExpress.XtraEditors.Controls; |
| | | using DevExpress.XtraEditors.Repository; |
| | | using DevExpress.XtraLayout.Utils; |
| | | using DevExpress.XtraVerticalGrid.Events; |
| | |
| | | SetDescriptionVisible(false);//默认设置属性描述面板不显示 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 匹配db事件 |
| | | /// 第一个参数为匹配Db的ViewModel |
| | | /// 第二个参数为是否匹配成功 |
| | | /// </summary> |
| | | public event Func<HydroParterPropertyViewModel, bool> MatchingDbEvent; |
| | | /// <summary> |
| | | /// 设置曲线事件 |
| | | /// 第一个参数为设置曲线的ViewModel |
| | | /// 第二个参数为曲线类型 |
| | | /// 第三个参数为是否设置成功 |
| | | /// </summary> |
| | | public event Func<HydroParterPropertyViewModel, string, bool> SetCurveEvent; |
| | | /// <summary> |
| | | /// 设置模式事件 |
| | | /// 第一个参数为设置模式事的ViewModel |
| | | /// 第二个参数为模式事类型 |
| | | /// 第三个参数为是否设置成功 |
| | | /// </summary> |
| | | public event Func<HydroParterPropertyViewModel, string, bool> SetPatternEvent; |
| | | /// <summary> |
| | | /// 属性值正在改变事件 |
| | | /// </summary> |
| | | public event Func<HydroParterPropertyViewModel, bool> PropertyValueChangingEvent; |
| | | /// <summary> |
| | | /// 属性值发生改变事件 |
| | | /// </summary> |
| | | public event Func<HydroParterPropertyViewModel, bool> PropertyValueChangedEvent; |
| | | /// <summary> |
| | | /// 强调连接组件事件 |
| | | /// 第一个参数为本身Code |
| | | /// 第二个参数为连接Code |
| | | /// </summary> |
| | | public event Action<string, string> BlinkLinkParterEvent; |
| | | |
| | | |
| | | //获取水力信息方法 |
| | | private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null; |
| | | |
| | | /// <summary> |
| | | /// 初始化数据 |
| | | /// </summary> |
| | | public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc) |
| | | { |
| | | _hydroInfoFunc = hydroInfoFunc; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 绑定对象 |
| | |
| | | set |
| | | { |
| | | this.propertyGridControl1.SelectedObject = value; |
| | | OnChanged(); |
| | | } |
| | | } |
| | | |
| | | //改变触发 |
| | | protected virtual void OnChanged() |
| | | /// <summary> |
| | | /// 绑定对象列表 |
| | | /// </summary> |
| | | public List<HydroParterPropertyViewModel> SelectedObjects |
| | | { |
| | | if (this.SelectedObject == null) |
| | | get { return this.propertyGridControl1.SelectedObjects?.Select(x => x as HydroParterPropertyViewModel).ToList(); } |
| | | set |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | |
| | | this.propertyGridControl1.SelectedObjects = value?.ToArray(); |
| | | } |
| | | } |
| | | |
| | |
| | | this.propertyGridControl1.UpdateRows(); |
| | | } |
| | | |
| | | //获取行的视图对象 |
| | | private HydroParterPropertyViewModel GetPropertyViewModel(DevExpress.XtraVerticalGrid.Rows.BaseRow row) |
| | | { |
| | | if (row.Level <= 1) |
| | | { |
| | | return this.SelectedObject; |
| | | } |
| | | if (row.ParentRow == null) |
| | | { |
| | | return this.SelectedObject; |
| | | } |
| | | if (row.ParentRow.Properties.Value is HydroParterPropertyViewModel) |
| | | { |
| | | return row.ParentRow.Properties.Value as HydroParterPropertyViewModel; |
| | | } |
| | | return GetPropertyViewModel(row.ParentRow); |
| | | } |
| | | |
| | | //设置描述控件的可见性 |
| | | private void SetDescriptionVisible(bool isVisible) |
| | | { |
| | |
| | | this.layoutDescription.Visibility = this.splitterItem1.Visibility = visible; |
| | | } |
| | | |
| | | //自定义属性值显示内容 |
| | | //自定义属性Header显示 |
| | | private void propertyGridControl1_CustomDrawRowHeaderCell(object sender, CustomDrawRowHeaderCellEventArgs e) |
| | | { |
| | | //行字段名称 |
| | | //var rowFieldName = this.propertyGridControl1.FocusedRow.Properties.FieldName.Split(new char[] { '.' }).Last(); |
| | | //if (string.IsNullOrEmpty(rowFieldName)) |
| | | //{ |
| | | // e.Handled = false; |
| | | // return; |
| | | //} |
| | | //if (e.Row is not DevExpress.XtraVerticalGrid.Rows.BaseRow) |
| | | //{ |
| | | // e.Handled = false; |
| | | // return; |
| | | //} |
| | | //var vm = GetPropertyViewModel(e.Row); |
| | | //var propStatus = vm.GetPropStatus(rowFieldName); |
| | | //if (propStatus == null) |
| | | //{ |
| | | // e.Handled = false; |
| | | // return; |
| | | //} |
| | | //switch (propStatus.PropStatus) |
| | | //{ |
| | | // case Yw.Hydro.ePropStatus.Error: |
| | | // { |
| | | // e.Row.AppearanceHeader.ForeColor = Color.White; |
| | | // e.Row.AppearanceHeader.BackColor = Color.Red; |
| | | // } |
| | | // break; |
| | | // case Yw.Hydro.ePropStatus.Normal: |
| | | // { |
| | | // e.Row.AppearanceHeader.ForeColor = Color.Black; |
| | | // e.Row.AppearanceHeader.BackColor = Color.White; |
| | | // } |
| | | // break; |
| | | // case Yw.Hydro.ePropStatus.Lack: |
| | | // { |
| | | // e.Row.AppearanceHeader.ForeColor = Color.White; |
| | | // e.Row.AppearanceHeader.BackColor = Color.Green; |
| | | // } |
| | | // break; |
| | | // case Yw.Hydro.ePropStatus.Abnormal: |
| | | // { |
| | | // e.Row.AppearanceHeader.ForeColor = Color.White; |
| | | // e.Row.AppearanceHeader.BackColor = Color.Orange; |
| | | // } |
| | | // break; |
| | | // default: break; |
| | | //} |
| | | //e.Handled = true; |
| | | } |
| | | |
| | | //自定义属性值显示 |
| | | private void propertyGridControl1_CustomDrawRowValueCell(object sender, CustomDrawRowValueCellEventArgs e) |
| | | { |
| | | //行类型全名称 |
| | | var rowTypeFullName = e.Row.Properties.RowType.FullName; |
| | | |
| | | //行字段名称 |
| | | var rowFieldName = e.Row.Properties.FieldName.Split(new char[] { '.' }).Last(); |
| | | if (rowTypeFullName == typeof(DateTime).FullName) |
| | | { |
| | | e.CellText = ((DateTime)e.Properties.Value).ToString("yyyy-MM-dd HH:mm:ss"); |
| | |
| | | else |
| | | { |
| | | var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); |
| | | var displayUnit = (DisplayUnitAttribute)descriptor.Attributes[typeof(DisplayUnitAttribute)]; |
| | | if (displayUnit != null) |
| | | var calcuPropAttri = (IsHydroCalcuProAttribute)descriptor.Attributes[typeof(IsHydroCalcuProAttribute)]; |
| | | if (calcuPropAttri != null && calcuPropAttri.CalcuPro) |
| | | { |
| | | if (e.Properties.Value == null) |
| | | { |
| | | e.CellText = "尚未计算"; |
| | | e.Appearance.ForeColor = Color.OrangeRed; |
| | | } |
| | | } |
| | | var displayUnitAttri = (DisplayUnitAttribute)descriptor.Attributes[typeof(DisplayUnitAttribute)]; |
| | | if (displayUnitAttri != null) |
| | | { |
| | | if (e.Properties.Value != null) |
| | | { |
| | | e.CellText = e.Properties.Value.ToString() + displayUnit.Unit; |
| | | e.CellText = e.Properties.Value.ToString() + " " + displayUnitAttri.Unit; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | //自定义属性描述 |
| | | private void propertyGridControl1_CustomPropertyDescriptors(object sender, CustomPropertyDescriptorsEventArgs e) |
| | | { |
| | | |
| | | } |
| | | |
| | | //属性编辑框的显示与取消 |
| | |
| | | var fieldName = e.Row.Properties.FieldName.Split(new char[] { '.' }).Last(); |
| | | var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); |
| | | var rowTypeFullName = e.Row.Properties.RowType.FullName; |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | |
| | | |
| | | #region 属性显示名称和描述 |
| | | |
| | | //名称 |
| | | var attri_caption = (DisplayNameAttribute)descriptor.Attributes[typeof(DisplayNameAttribute)]; |
| | | if (attri_caption != null && !string.IsNullOrEmpty(attri_caption.DisplayName)) |
| | | //var displayNameAttri = (DisplayNameAttribute)descriptor.Attributes[typeof(DisplayNameAttribute)]; |
| | | //if (displayNameAttri != null && !string.IsNullOrEmpty(displayNameAttri.DisplayName)) |
| | | //{ |
| | | // e.Row.Properties.Caption = displayNameAttri.DisplayName; |
| | | //} |
| | | |
| | | var propStatus = vm.GetPropStatus(fieldName); |
| | | if (propStatus != null) |
| | | { |
| | | e.Row.Properties.Caption = attri_caption.DisplayName; |
| | | var sb = new StringBuilder(); |
| | | sb.AppendLine($"状态:{propStatus.PropStatus.GetDisplayText()}"); |
| | | sb.AppendLine($"信息:{propStatus.StatusInfo}"); |
| | | e.Row.Properties.ToolTip = sb.ToString(); |
| | | } |
| | | |
| | | |
| | | |
| | | //备注 |
| | | if (e.Row.Properties.Value == null) |
| | | { |
| | | e.Row.Properties.ToolTip = string.Empty; |
| | | } |
| | | else |
| | | { |
| | | if (e.Row.Properties.RowType.IsEnum) |
| | | { |
| | | e.Row.Properties.ToolTip = ((Enum)(e.Row.Properties.Value)).GetDisplayText(); |
| | | } |
| | | else if (e.Row.Properties.RowType.FullName == typeof(DateTime).FullName) |
| | | { |
| | | e.Row.Properties.ToolTip = ((DateTime)e.Row.Properties.Value).ToString("yyyy-MM-dd HH:mm:ss"); |
| | | } |
| | | else if (e.Row.Properties.RowType.FullName == typeof(Image).FullName) |
| | | { |
| | | e.Row.Properties.ToolTip = string.Empty; |
| | | } |
| | | else |
| | | { |
| | | e.Row.Properties.ToolTip = e.Row.Properties.Value.ToString(); |
| | | } |
| | | } |
| | | //if (e.Row.Properties.Value == null) |
| | | //{ |
| | | // e.Row.Properties.ToolTip = string.Empty; |
| | | //} |
| | | //else |
| | | //{ |
| | | // if (e.Row.Properties.RowType.IsEnum) |
| | | // { |
| | | // e.Row.Properties.ToolTip = ((Enum)(e.Row.Properties.Value)).GetDisplayText(); |
| | | // } |
| | | // else if (e.Row.Properties.RowType.FullName == typeof(DateTime).FullName) |
| | | // { |
| | | // e.Row.Properties.ToolTip = ((DateTime)e.Row.Properties.Value).ToString("yyyy-MM-dd HH:mm:ss"); |
| | | // } |
| | | // else if (e.Row.Properties.RowType.FullName == typeof(Image).FullName) |
| | | // { |
| | | // e.Row.Properties.ToolTip = string.Empty; |
| | | // } |
| | | // else |
| | | // { |
| | | // e.Row.Properties.ToolTip = e.Row.Properties.Value.ToString(); |
| | | // } |
| | | //} |
| | | |
| | | |
| | | |
| | | #endregion |
| | | |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 型号 |
| | | |
| | | var modelTypeAttri = (IsHydroModelTypeAttribute)descriptor.Attributes[typeof(IsHydroModelTypeAttribute)]; |
| | | if (modelTypeAttri != null) |
| | | { |
| | | var buttonEdit = new RepositoryItemButtonEdit(); |
| | | buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; |
| | | buttonEdit.ButtonClick += delegate |
| | | { |
| | | if (this.MatchingDbEvent == null) |
| | | { |
| | | return; |
| | | } |
| | | var hydroInfo = _hydroInfoFunc?.Invoke(); |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | if (vm == null) |
| | | { |
| | | return; |
| | | } |
| | | var bol = this.MatchingDbEvent.Invoke(vm); |
| | | if (bol) |
| | | { |
| | | UpdateRows(); |
| | | } |
| | | }; |
| | | e.RepositoryItem = buttonEdit; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 曲线 |
| | | |
| | | var curvePropAttri = (IsHydroCurveProAttribute)descriptor.Attributes[typeof(IsHydroCurveProAttribute)]; |
| | | if (curvePropAttri != null) |
| | | { |
| | | var buttonEdit = new RepositoryItemButtonEdit(); |
| | | buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; |
| | | buttonEdit.ButtonClick += delegate |
| | | { |
| | | var hydroInfo = _hydroInfoFunc?.Invoke(); |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | switch (curvePropAttri.CurveType) |
| | | { |
| | | case HydroCurve.Pump: |
| | | { |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.Pump)) |
| | | { |
| | | //缺省的设置方法 |
| | | } |
| | | } |
| | | break; |
| | | case HydroCurve.PumpQH: |
| | | { |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.PumpQH)) |
| | | { |
| | | var pumpViewModel = vm as HydroPumpPropertyViewModel; |
| | | var curveQh = hydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQH); |
| | | var dlg = new SetHydroCurveDlg(); |
| | | dlg.ReloadDataEvent += (curveInfo) => |
| | | { |
| | | if (hydroInfo.Curves == null) |
| | | { |
| | | hydroInfo.Curves = new List<Model.HydroCurveInfo>(); |
| | | } |
| | | if (curveQh != null) |
| | | { |
| | | hydroInfo.Curves.Remove(curveQh); |
| | | } |
| | | hydroInfo.Curves.Add(curveInfo); |
| | | pumpViewModel.CurveQH = curveInfo.Code; |
| | | UpdateRows(); |
| | | }; |
| | | dlg.SetBindingData(hydroInfo, curveQh, curvePropAttri.CurveType); |
| | | dlg.ShowDialog(); |
| | | } |
| | | } |
| | | break; |
| | | case HydroCurve.PumpQP: |
| | | { |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePropAttri.CurveType)) |
| | | { |
| | | var pumpViewModel = vm as HydroPumpPropertyViewModel; |
| | | var curveQp = hydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQP); |
| | | var dlg = new SetHydroCurveDlg(); |
| | | dlg.ReloadDataEvent += (curveInfo) => |
| | | { |
| | | if (hydroInfo.Curves == null) |
| | | { |
| | | hydroInfo.Curves = new List<Model.HydroCurveInfo>(); |
| | | } |
| | | if (curveQp != null) |
| | | { |
| | | hydroInfo.Curves.Remove(curveQp); |
| | | } |
| | | hydroInfo.Curves.Add(curveInfo); |
| | | pumpViewModel.CurveQP = curveInfo.Code; |
| | | UpdateRows(); |
| | | }; |
| | | dlg.SetBindingData(hydroInfo, curveQp, curvePropAttri.CurveType); |
| | | dlg.ShowDialog(); |
| | | } |
| | | } |
| | | break; |
| | | case HydroCurve.PumpQE: |
| | | { |
| | | var pumpViewModel = vm as HydroPumpPropertyViewModel; |
| | | var curveQe = hydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQE); |
| | | var dlg = new SetHydroCurveDlg(); |
| | | dlg.ReloadDataEvent += (curveInfo) => |
| | | { |
| | | if (hydroInfo.Curves == null) |
| | | { |
| | | hydroInfo.Curves = new List<Model.HydroCurveInfo>(); |
| | | } |
| | | if (curveQe != null) |
| | | { |
| | | hydroInfo.Curves.Remove(curveQe); |
| | | } |
| | | hydroInfo.Curves.Add(curveInfo); |
| | | pumpViewModel.CurveQE = curveInfo.Code; |
| | | UpdateRows(); |
| | | }; |
| | | dlg.SetBindingData(hydroInfo, curveQe, curvePropAttri.CurveType); |
| | | dlg.ShowDialog(); |
| | | } |
| | | break; |
| | | case HydroCurve.Valve: |
| | | { |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, HydroCurve.Valve)) |
| | | { |
| | | //缺省的设置方法 |
| | | } |
| | | } |
| | | break; |
| | | case HydroCurve.ValveQL: |
| | | { |
| | | if (this.SetCurveEvent == null || !this.SetCurveEvent.Invoke(vm, curvePropAttri.CurveType)) |
| | | { |
| | | //缺省的设置方法 |
| | | } |
| | | } |
| | | break; |
| | | default: break; |
| | | } |
| | | }; |
| | | e.RepositoryItem = buttonEdit; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 模式 |
| | | |
| | | var patternProAttri = (IsHydroPatternProAttribute)descriptor.Attributes[typeof(IsHydroPatternProAttribute)]; |
| | | if (patternProAttri != null) |
| | | { |
| | | var buttonEdit = new RepositoryItemButtonEdit(); |
| | | buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; |
| | | buttonEdit.ButtonClick += delegate |
| | | { |
| | | var hydroInfo = _hydroInfoFunc?.Invoke(); |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | switch (patternProAttri.PatternType) |
| | | { |
| | | case HydroPattern.Head: |
| | | { |
| | | if (this.SetPatternEvent == null || !this.SetPatternEvent.Invoke(vm, HydroPattern.Head)) |
| | | { |
| | | //缺省的设置方法 |
| | | } |
| | | } |
| | | break; |
| | | case HydroPattern.Demand: |
| | | { |
| | | if (this.SetPatternEvent == null || !this.SetPatternEvent.Invoke(vm, HydroPattern.Demand)) |
| | | { |
| | | //缺省的设置方法 |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | }; |
| | | e.RepositoryItem = buttonEdit; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 标签 |
| | | |
| | | var flagsPro = (IsHydroFlagsProAttribute)descriptor.Attributes[typeof(IsHydroFlagsProAttribute)]; |
| | | if (flagsPro != null && flagsPro.FlagsPro) |
| | | { |
| | | var buttonEdit = new RepositoryItemButtonEdit(); |
| | | buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; |
| | | buttonEdit.ButtonClick += async delegate |
| | | { |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | var flagVmoList = await BLLFactory<Yw.BLL.SysFlag>.Instance.GetBySysType(Yw.Hydro.DataType.HydroParter); |
| | | var dbFlagList = flagVmoList?.Select(x => x.Name).Distinct().ToList(); |
| | | var dlg = new SetFlagsDlg(); |
| | | dlg.SetBindingData(dbFlagList, Yw.Untity.FlagsHelper.ToList(vm.Flags)); |
| | | dlg.ReloadDataEvent += (flags) => |
| | | { |
| | | vm.Flags = Yw.Untity.FlagsHelper.ToString(flags); |
| | | UpdateRows(); |
| | | }; |
| | | dlg.ShowDialog(); |
| | | }; |
| | | e.RepositoryItem = buttonEdit; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 连接 |
| | | |
| | | if (e.Row.Properties.Value != null) |
| | | { |
| | | var linkCodeAttri = (IsHydroLinkCodeAttribute)descriptor.Attributes[typeof(IsHydroLinkCodeAttribute)]; |
| | | if (linkCodeAttri != null) |
| | | { |
| | | var buttonEdit = new RepositoryItemButtonEdit(); |
| | | buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; |
| | | buttonEdit.ButtonClick += delegate |
| | | { |
| | | var hydroInfo = _hydroInfoFunc?.Invoke(); |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | var vm = GetPropertyViewModel(e.Row); |
| | | this.BlinkLinkParterEvent?.Invoke(vm.Code, e.Row.Properties.Value.ToString()); |
| | | }; |
| | | e.RepositoryItem = buttonEdit; |
| | | } |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | | } |
| | | |
| | | //属性值正在改变 |
| | | void propertyGridControl1_CellValueChanging(object sender, DevExpress.XtraVerticalGrid.Events.CellValueChangedEventArgs e) |
| | | { |
| | | |
| | | var fieldName = e.Row.Properties.FieldName.Split(new char[] { '.' }).Last(); |
| | | var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); |
| | | var propertyViewModel = GetPropertyViewModel(e.Row); |
| | | this.PropertyValueChangingEvent?.Invoke(propertyViewModel); |
| | | } |
| | | |
| | | //属性值改变,更新地图和JsonModel对象 |
| | | //属性值改变 |
| | | void propertyGridControl1_CellValueChanged(object sender, DevExpress.XtraVerticalGrid.Events.CellValueChangedEventArgs e) |
| | | { |
| | | var fieldName = e.Row.Properties.FieldName.Split(new char[] { '.' }).Last(); |
| | | var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); |
| | | var propertyViewModel = GetPropertyViewModel(e.Row); |
| | | this.PropertyValueChangedEvent?.Invoke(propertyViewModel); |
| | | if (this.PropertyValueChangedEvent == null || !this.PropertyValueChangedEvent.Invoke(propertyViewModel)) |
| | | { |
| | | var hydroInfo = _hydroInfoFunc?.Invoke(); |
| | | if (hydroInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | var allParterList = hydroInfo.GetAllParters(); |
| | | var parter = allParterList?.Find(x => x.ID == propertyViewModel.ID); |
| | | if (parter == null) |
| | | { |
| | | return; |
| | | } |
| | | parter.UpdateProperty(allParterList, propertyViewModel); |
| | | } |
| | | UpdateRows(); |
| | | } |
| | | |
| | | // 描述 |
| | |
| | | this.propertyGridControl1.CollapseAllRows(); |
| | | } |
| | | |
| | | //聚焦行改变 |
| | | private void propertyGridControl1_FocusedRowChanged(object sender, FocusedRowChangedEventArgs e) |
| | | { |
| | | |
| | | } |
| | | |
| | | private void propertyGridControl1_CustomDrawCaption(object sender, CustomDrawCaptionEventArgs e) |
| | | { |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |