Shuxia Ning
2024-10-24 63bfc7fa94d5f8896e0d2b29e96016ac9177def8
简单修改
已修改6个文件
已添加3个文件
1150 ■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/99-common/PumpParallelChartDlg.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/HydroCurveViewCtrl.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl - 复制.Designer.cs 401 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl - 复制.cs 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl - 复制.resx 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.Designer.cs 317 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.resx 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/99-common/PumpParallelChartDlg.cs
@@ -9,6 +9,7 @@
            InitializeComponent();
            this.Text = "并联分析";
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
            this.pumpSerialParallelChart.LineVisible = true;
            this.pumpParallelInfoCtrl1.SetEvent += (id, qh, qe, qp) =>
            {
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/HydroCurveViewCtrl.cs
@@ -1,4 +1,6 @@
using DevExpress.XtraCharts;
using DevExpress.Data.Linq.Helpers;
using DevExpress.DataAccess.Native.Json;
using DevExpress.XtraCharts;
namespace Yw.WinFrmUI
{
@@ -7,6 +9,15 @@
        public HydroCurveViewCtrl()
        {
            InitializeComponent();
        }
        private void InitChart()
        {
            var xy_diagram = (XYDiagram)this.chartControl1.Diagram;
            var axis_x = xy_diagram.AxisX;
            var axis_y = xy_diagram.AxisX;
        }
        /// <summary>
@@ -28,12 +39,53 @@
        }
        /// <summary>
        /// x
        /// </summary>
        public AxisX AxisX
        {
            get { return ((XYDiagram)chartControl1.Diagram).AxisX; }
        }
        /// <summary>
        /// x
        /// </summary>
        public AxisY AxisY
        {
            get { return ((XYDiagram)chartControl1.Diagram).AxisY; }
        }
        /// <summary>
        /// 
        /// </summary>
        public void SetBindingData(List<HydroCurvePointViewModel> pts)
        {
            this.hydroCurvePointViewModelBindingSource.DataSource = pts;
            this.hydroCurvePointViewModelBindingSource.ResetBindings(false);
            if (pts != null && pts.Any())
            {
                var x_min = pts.Min(x => x.X);
                var x_max = pts.Max(x => x.X);
                var y_max = pts.Max(x => x.Y);
                var y_min = pts.Min(x => x.Y);
                x_min = Math.Floor(x_min);
                x_max = Math.Ceiling(x_max);
                y_min = Math.Floor(y_min);
                y_max = Math.Ceiling(y_max);
                this.AxisX.WholeRange.SetMinMaxValues(x_min, x_max);
                this.AxisX.VisualRange.SetMinMaxValues(x_min, x_max);
                this.AxisY.WholeRange.SetMinMaxValues(y_min, y_min);
                this.AxisY.VisualRange.SetMinMaxValues(y_max, y_max);
            }
        }
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl - ¸´ÖÆ.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,401 @@
namespace Yw.WinFrmUI
{
    partial class SetHydroCurveCtrl
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Component Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            components = new Container();
            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
            ComponentResourceManager resources = new ComponentResourceManager(typeof(SetHydroCurveCtrl));
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject3 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject4 = new DevExpress.Utils.SerializableAppearanceObject();
            splitContainerControl1 = new DevExpress.XtraEditors.SplitContainerControl();
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            btnImportByExcel = new DevExpress.XtraEditors.SimpleButton();
            txtCurveType = new DevExpress.XtraEditors.TextEdit();
            btnSave = new DevExpress.XtraEditors.SimpleButton();
            txtDescription = new DevExpress.XtraEditors.MemoEdit();
            txtName = new DevExpress.XtraEditors.TextEdit();
            gridControl1 = new DevExpress.XtraGrid.GridControl();
            hydroCurvePointViewModelBindingSource = new BindingSource(components);
            gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
            colX = new DevExpress.XtraGrid.Columns.GridColumn();
            colY = new DevExpress.XtraGrid.Columns.GridColumn();
            colDelete = new DevExpress.XtraGrid.Columns.GridColumn();
            repositoryItemButtonEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
            txtCode = new DevExpress.XtraEditors.TextEdit();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
            hydroCurveViewCtrl1 = new HydroCurveViewCtrl();
            ((ISupportInitialize)splitContainerControl1).BeginInit();
            ((ISupportInitialize)splitContainerControl1.Panel1).BeginInit();
            splitContainerControl1.Panel1.SuspendLayout();
            ((ISupportInitialize)splitContainerControl1.Panel2).BeginInit();
            splitContainerControl1.Panel2.SuspendLayout();
            splitContainerControl1.SuspendLayout();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)txtCurveType.Properties).BeginInit();
            ((ISupportInitialize)txtDescription.Properties).BeginInit();
            ((ISupportInitialize)txtName.Properties).BeginInit();
            ((ISupportInitialize)gridControl1).BeginInit();
            ((ISupportInitialize)hydroCurvePointViewModelBindingSource).BeginInit();
            ((ISupportInitialize)gridView1).BeginInit();
            ((ISupportInitialize)repositoryItemButtonEdit1).BeginInit();
            ((ISupportInitialize)txtCode.Properties).BeginInit();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)layoutControlItem2).BeginInit();
            ((ISupportInitialize)layoutControlItem3).BeginInit();
            ((ISupportInitialize)layoutControlItem4).BeginInit();
            ((ISupportInitialize)layoutControlItem5).BeginInit();
            ((ISupportInitialize)layoutControlItem8).BeginInit();
            ((ISupportInitialize)emptySpaceItem1).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)layoutControlItem6).BeginInit();
            SuspendLayout();
            //
            // splitContainerControl1
            //
            splitContainerControl1.Dock = DockStyle.Fill;
            splitContainerControl1.Location = new Point(0, 0);
            splitContainerControl1.Name = "splitContainerControl1";
            //
            // splitContainerControl1.Panel1
            //
            splitContainerControl1.Panel1.Controls.Add(layoutControl1);
            splitContainerControl1.Panel1.Text = "Panel1";
            //
            // splitContainerControl1.Panel2
            //
            splitContainerControl1.Panel2.Controls.Add(hydroCurveViewCtrl1);
            splitContainerControl1.Panel2.Text = "Panel2";
            splitContainerControl1.Size = new Size(913, 563);
            splitContainerControl1.SplitterPosition = 295;
            splitContainerControl1.TabIndex = 0;
            //
            // layoutControl1
            //
            layoutControl1.Controls.Add(btnImportByExcel);
            layoutControl1.Controls.Add(txtCurveType);
            layoutControl1.Controls.Add(btnSave);
            layoutControl1.Controls.Add(txtDescription);
            layoutControl1.Controls.Add(txtName);
            layoutControl1.Controls.Add(gridControl1);
            layoutControl1.Controls.Add(txtCode);
            layoutControl1.Dock = DockStyle.Fill;
            layoutControl1.Location = new Point(0, 0);
            layoutControl1.Name = "layoutControl1";
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(683, 274, 650, 400);
            layoutControl1.Root = Root;
            layoutControl1.Size = new Size(295, 563);
            layoutControl1.TabIndex = 0;
            layoutControl1.Text = "layoutControl1";
            //
            // btnImportByExcel
            //
            btnImportByExcel.Location = new Point(97, 539);
            btnImportByExcel.Name = "btnImportByExcel";
            btnImportByExcel.Size = new Size(96, 22);
            btnImportByExcel.StyleController = layoutControl1;
            btnImportByExcel.TabIndex = 13;
            btnImportByExcel.Text = "Excel导入";
            //
            // txtCurveType
            //
            txtCurveType.Location = new Point(42, 50);
            txtCurveType.Name = "txtCurveType";
            txtCurveType.Properties.ReadOnly = true;
            txtCurveType.Size = new Size(251, 20);
            txtCurveType.StyleController = layoutControl1;
            txtCurveType.TabIndex = 12;
            //
            // btnSave
            //
            btnSave.Location = new Point(197, 539);
            btnSave.Name = "btnSave";
            btnSave.Size = new Size(96, 22);
            btnSave.StyleController = layoutControl1;
            btnSave.TabIndex = 11;
            btnSave.Text = "保存";
            btnSave.Click += btnSave_Click;
            //
            // txtDescription
            //
            txtDescription.Location = new Point(42, 74);
            txtDescription.Name = "txtDescription";
            txtDescription.Size = new Size(251, 49);
            txtDescription.StyleController = layoutControl1;
            txtDescription.TabIndex = 8;
            //
            // txtName
            //
            txtName.Location = new Point(42, 26);
            txtName.Name = "txtName";
            txtName.Size = new Size(251, 20);
            txtName.StyleController = layoutControl1;
            txtName.TabIndex = 7;
            //
            // gridControl1
            //
            gridControl1.DataSource = hydroCurvePointViewModelBindingSource;
            gridControl1.Location = new Point(2, 127);
            gridControl1.MainView = gridView1;
            gridControl1.Name = "gridControl1";
            gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemButtonEdit1 });
            gridControl1.Size = new Size(291, 408);
            gridControl1.TabIndex = 6;
            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
            //
            // hydroCurvePointViewModelBindingSource
            //
            hydroCurvePointViewModelBindingSource.DataSource = typeof(HydroCurvePointViewModel);
            //
            // gridView1
            //
            gridView1.Appearance.ViewCaption.Options.UseTextOptions = true;
            gridView1.Appearance.ViewCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colX, colY, colDelete });
            gridView1.GridControl = gridControl1;
            gridView1.Name = "gridView1";
            gridView1.OptionsView.ShowViewCaption = true;
            gridView1.ViewCaption = "曲线点";
            gridView1.RowCellClick += gridView1_RowCellClick;
            //
            // colX
            //
            colX.FieldName = "X";
            colX.Name = "colX";
            colX.Visible = true;
            colX.VisibleIndex = 0;
            //
            // colY
            //
            colY.FieldName = "Y";
            colY.Name = "colY";
            colY.Visible = true;
            colY.VisibleIndex = 1;
            //
            // colDelete
            //
            colDelete.Caption = "删除";
            colDelete.ColumnEdit = repositoryItemButtonEdit1;
            colDelete.MaxWidth = 50;
            colDelete.MinWidth = 50;
            colDelete.Name = "colDelete";
            colDelete.OptionsColumn.AllowEdit = false;
            colDelete.Visible = true;
            colDelete.VisibleIndex = 2;
            colDelete.Width = 50;
            //
            // repositoryItemButtonEdit1
            //
            repositoryItemButtonEdit1.AutoHeight = false;
            editorButtonImageOptions1.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions1.SvgImage");
            editorButtonImageOptions1.SvgImageSize = new Size(20, 20);
            repositoryItemButtonEdit1.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
            repositoryItemButtonEdit1.Name = "repositoryItemButtonEdit1";
            repositoryItemButtonEdit1.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
            //
            // txtCode
            //
            txtCode.Location = new Point(42, 2);
            txtCode.Name = "txtCode";
            txtCode.Properties.ReadOnly = true;
            txtCode.Size = new Size(251, 20);
            txtCode.StyleController = layoutControl1;
            txtCode.TabIndex = 5;
            //
            // Root
            //
            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            Root.GroupBordersVisible = false;
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem3, layoutControlItem4, layoutControlItem5, layoutControlItem8, emptySpaceItem1, layoutControlItem1, layoutControlItem6 });
            Root.Name = "Root";
            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            Root.Size = new Size(295, 563);
            Root.TextVisible = false;
            //
            // layoutControlItem2
            //
            layoutControlItem2.Control = txtCode;
            layoutControlItem2.Location = new Point(0, 0);
            layoutControlItem2.Name = "layoutControlItem2";
            layoutControlItem2.Size = new Size(295, 24);
            layoutControlItem2.Text = "编码:";
            layoutControlItem2.TextSize = new Size(28, 14);
            //
            // layoutControlItem3
            //
            layoutControlItem3.Control = gridControl1;
            layoutControlItem3.Location = new Point(0, 125);
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.Size = new Size(295, 412);
            layoutControlItem3.TextSize = new Size(0, 0);
            layoutControlItem3.TextVisible = false;
            //
            // layoutControlItem4
            //
            layoutControlItem4.Control = txtName;
            layoutControlItem4.Location = new Point(0, 24);
            layoutControlItem4.Name = "layoutControlItem4";
            layoutControlItem4.Size = new Size(295, 24);
            layoutControlItem4.Text = "名称:";
            layoutControlItem4.TextSize = new Size(28, 14);
            //
            // layoutControlItem5
            //
            layoutControlItem5.Control = txtDescription;
            layoutControlItem5.Location = new Point(0, 72);
            layoutControlItem5.Name = "layoutControlItem5";
            layoutControlItem5.Size = new Size(295, 53);
            layoutControlItem5.Text = "说明:";
            layoutControlItem5.TextSize = new Size(28, 14);
            //
            // layoutControlItem8
            //
            layoutControlItem8.Control = btnSave;
            layoutControlItem8.Location = new Point(195, 537);
            layoutControlItem8.MaxSize = new Size(100, 0);
            layoutControlItem8.MinSize = new Size(100, 26);
            layoutControlItem8.Name = "layoutControlItem8";
            layoutControlItem8.Size = new Size(100, 26);
            layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
            layoutControlItem8.TextSize = new Size(0, 0);
            layoutControlItem8.TextVisible = false;
            //
            // emptySpaceItem1
            //
            emptySpaceItem1.AllowHotTrack = false;
            emptySpaceItem1.Location = new Point(0, 537);
            emptySpaceItem1.Name = "emptySpaceItem1";
            emptySpaceItem1.Size = new Size(95, 26);
            emptySpaceItem1.TextSize = new Size(0, 0);
            //
            // layoutControlItem1
            //
            layoutControlItem1.Control = txtCurveType;
            layoutControlItem1.Location = new Point(0, 48);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Size = new Size(295, 24);
            layoutControlItem1.Text = "类型:";
            layoutControlItem1.TextSize = new Size(28, 14);
            //
            // layoutControlItem6
            //
            layoutControlItem6.Control = btnImportByExcel;
            layoutControlItem6.Location = new Point(95, 537);
            layoutControlItem6.MaxSize = new Size(100, 26);
            layoutControlItem6.MinSize = new Size(100, 26);
            layoutControlItem6.Name = "layoutControlItem6";
            layoutControlItem6.Size = new Size(100, 26);
            layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
            layoutControlItem6.TextSize = new Size(0, 0);
            layoutControlItem6.TextVisible = false;
            //
            // hydroCurveViewCtrl1
            //
            hydroCurveViewCtrl1.Dock = DockStyle.Fill;
            hydroCurveViewCtrl1.Location = new Point(0, 0);
            hydroCurveViewCtrl1.Name = "hydroCurveViewCtrl1";
            hydroCurveViewCtrl1.Size = new Size(608, 563);
            hydroCurveViewCtrl1.TabIndex = 0;
            hydroCurveViewCtrl1.TitleTextX = "Axis of arguments";
            hydroCurveViewCtrl1.TitleTextY = "Axis of values";
            //
            // SetHydroCurveCtrl
            //
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(splitContainerControl1);
            Name = "SetHydroCurveCtrl";
            Size = new Size(913, 563);
            ((ISupportInitialize)splitContainerControl1.Panel1).EndInit();
            splitContainerControl1.Panel1.ResumeLayout(false);
            ((ISupportInitialize)splitContainerControl1.Panel2).EndInit();
            splitContainerControl1.Panel2.ResumeLayout(false);
            ((ISupportInitialize)splitContainerControl1).EndInit();
            splitContainerControl1.ResumeLayout(false);
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
            ((ISupportInitialize)txtCurveType.Properties).EndInit();
            ((ISupportInitialize)txtDescription.Properties).EndInit();
            ((ISupportInitialize)txtName.Properties).EndInit();
            ((ISupportInitialize)gridControl1).EndInit();
            ((ISupportInitialize)hydroCurvePointViewModelBindingSource).EndInit();
            ((ISupportInitialize)gridView1).EndInit();
            ((ISupportInitialize)repositoryItemButtonEdit1).EndInit();
            ((ISupportInitialize)txtCode.Properties).EndInit();
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)layoutControlItem2).EndInit();
            ((ISupportInitialize)layoutControlItem3).EndInit();
            ((ISupportInitialize)layoutControlItem4).EndInit();
            ((ISupportInitialize)layoutControlItem5).EndInit();
            ((ISupportInitialize)layoutControlItem8).EndInit();
            ((ISupportInitialize)emptySpaceItem1).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)layoutControlItem6).EndInit();
            ResumeLayout(false);
        }
        #endregion
        private DevExpress.XtraEditors.SplitContainerControl splitContainerControl1;
        private DevExpress.XtraLayout.LayoutControl layoutControl1;
        private DevExpress.XtraLayout.LayoutControlGroup Root;
        private HydroCurveViewCtrl hydroCurveViewCtrl1;
        private DevExpress.XtraGrid.GridControl gridControl1;
        private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
        private DevExpress.XtraEditors.TextEdit txtCode;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
        private BindingSource hydroCurvePointViewModelBindingSource;
        private DevExpress.XtraGrid.Columns.GridColumn colX;
        private DevExpress.XtraGrid.Columns.GridColumn colY;
        private DevExpress.XtraEditors.SimpleButton btnSave;
        private DevExpress.XtraEditors.MemoEdit txtDescription;
        private DevExpress.XtraEditors.TextEdit txtName;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
        private DevExpress.XtraEditors.SimpleButton btnImportByExcel;
        private DevExpress.XtraEditors.TextEdit txtCurveType;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
        private DevExpress.XtraGrid.Columns.GridColumn colDelete;
        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit1;
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl - ¸´ÖÆ.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,122 @@
using DevExpress.XtraEditors;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
namespace Yw.WinFrmUI
{
    public partial class SetHydroCurveCtrl : DevExpress.XtraEditors.XtraUserControl
    {
        public SetHydroCurveCtrl()
        {
            InitializeComponent();
            this.gridView1.SetBindingLimitEditView(25);
            this.gridView1.ShowViewCaption(25);
        }
        /// <summary>
        /// ä¿å­˜æ›²çº¿ä¿¡æ¯äº‹ä»¶
        /// </summary>
        public event Action<Yw.Model.HydroCurveInfo> SaveCurveInfoEvent;
        private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
        private Yw.Model.HydroCurveInfo _curveInfo = null;//曲线信息
        private BindingList<HydroCurvePointViewModel> _allBindingList = null;
        /// <summary>
        ///
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroCurveInfo curveInfo, string curveType)
        {
            if (hydroInfo == null)
            {
                return;
            }
            _hydroInfo = hydroInfo;
            _curveInfo = curveInfo;
            if (_curveInfo == null)
            {
                _curveInfo = new Model.HydroCurveInfo();
                _curveInfo.Catalog = Yw.Hydro.ParterCatalog.Curve;
                _curveInfo.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", _hydroInfo.GetAllParters().Select(x => x.Code).ToList());
                _curveInfo.CurveType = curveType;
            }
            this.txtCode.EditValue = _curveInfo.Code;
            this.txtName.EditValue = _curveInfo.Name;
            this.txtDescription.EditValue = _curveInfo.Description;
            switch (curveType)
            {
                case HydroCurve.PumpQH:
                    {
                        this.txtCurveType.EditValue = "水泵流量扬程曲线";
                        this.colX.Caption = "Q(m³/h)";
                        this.colY.Caption = "H(m)";
                        this.hydroCurveViewCtrl1.TitleTextX = "流量(m³/h)";
                        this.hydroCurveViewCtrl1.TitleTextY = "扬程(m)";
                    }
                    break;
                case HydroCurve.PumpQP:
                    {
                        this.txtCurveType.EditValue = "水泵流量功率曲线";
                        this.colX.Caption = "Q(m³/h)";
                        this.colY.Caption = "P(kW)";
                        this.hydroCurveViewCtrl1.TitleTextX = "流量(m³/h)";
                        this.hydroCurveViewCtrl1.TitleTextY = "功率(kW)";
                    }
                    break;
                case HydroCurve.PumpQE:
                    {
                        this.txtCurveType.EditValue = "水泵流量效率曲线";
                        this.colX.Caption = "Q(m³/h)";
                        this.colY.Caption = "E(%)";
                        this.hydroCurveViewCtrl1.TitleTextX = "流量(m³/h)";
                        this.hydroCurveViewCtrl1.TitleTextY = "效率(%)";
                    }
                    break;
                default: break;
            }
            _allBindingList = new BindingList<HydroCurvePointViewModel>();
            _curveInfo.CurveData?.ForEach(x =>
            {
                var pt = new HydroCurvePointViewModel(x.X, x.Y);
                _allBindingList.Add(pt);
            });
            this.hydroCurvePointViewModelBindingSource.DataSource = _allBindingList;
            this.hydroCurvePointViewModelBindingSource.ResetBindings(false);
            this.hydroCurveViewCtrl1.SetBindingData(_allBindingList.ToList());
        }
        //保存
        private void btnSave_Click(object sender, EventArgs e)
        {
            _curveInfo.Name = this.txtName.Text.Trim();
            _curveInfo.Description = this.txtDescription.Text.Trim();
            _curveInfo.CurveData = _allBindingList?.Select(x => new Model.Hydro.CurvePoint(x.X, x.Y)).ToList();
            this.hydroCurveViewCtrl1.SetBindingData(_allBindingList.ToList());
            this.SaveCurveInfoEvent?.Invoke(_curveInfo);
        }
        //删除
        private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
        {
            if (e.RowHandle < 0)
            {
                return;
            }
            if (e.Column == this.colDelete)
            {
                _allBindingList.RemoveAt(e.RowHandle);
            }
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl - ¸´ÖÆ.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,145 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <metadata name="hydroCurvePointViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
  <data name="editorButtonImageOptions1.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAD0DAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJs
        YWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMy
        Mzt9CgkuWWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRGVsZXRlIj4N
        CiAgICA8Zz4NCiAgICAgIDxwYXRoIGQ9Ik0xOC44LDE2bDYuOS02LjljMC40LTAuNCwwLjQtMSwwLTEu
        NGwtMS40LTEuNGMtMC40LTAuNC0xLTAuNC0xLjQsMEwxNiwxMy4yTDkuMSw2LjNjLTAuNC0wLjQtMS0w
        LjQtMS40LDAgICAgTDYuMyw3LjdjLTAuNCwwLjQtMC40LDEsMCwxLjRsNi45LDYuOWwtNi45LDYuOWMt
        MC40LDAuNC0wLjQsMSwwLDEuNGwxLjQsMS40YzAuNCwwLjQsMSwwLjQsMS40LDBsNi45LTYuOWw2Ljks
        Ni45ICAgIGMwLjQsMC40LDEsMC40LDEuNCwwbDEuNC0xLjRjMC40LTAuNCwwLjQtMSwwLTEuNEwxOC44
        LDE2eiIgY2xhc3M9IlJlZCIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
</root>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.Designer.cs
@@ -29,13 +29,12 @@
        private void InitializeComponent()
        {
            components = new Container();
            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
            ComponentResourceManager resources = new ComponentResourceManager(typeof(SetHydroCurveCtrl));
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject3 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject4 = new DevExpress.Utils.SerializableAppearanceObject();
            splitContainerControl1 = new DevExpress.XtraEditors.SplitContainerControl();
            DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions2 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject5 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject6 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject7 = new DevExpress.Utils.SerializableAppearanceObject();
            DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject8 = new DevExpress.Utils.SerializableAppearanceObject();
            layoutControl1 = new DevExpress.XtraLayout.LayoutControl();
            btnImportByExcel = new DevExpress.XtraEditors.SimpleButton();
            txtCurveType = new DevExpress.XtraEditors.TextEdit();
@@ -52,20 +51,20 @@
            txtCode = new DevExpress.XtraEditors.TextEdit();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem();
            emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
            hydroCurveViewCtrl1 = new HydroCurveViewCtrl();
            ((ISupportInitialize)splitContainerControl1).BeginInit();
            ((ISupportInitialize)splitContainerControl1.Panel1).BeginInit();
            splitContainerControl1.Panel1.SuspendLayout();
            ((ISupportInitialize)splitContainerControl1.Panel2).BeginInit();
            splitContainerControl1.Panel2.SuspendLayout();
            splitContainerControl1.SuspendLayout();
            sidePanel1 = new DevExpress.XtraEditors.SidePanel();
            sidePanel2 = new DevExpress.XtraEditors.SidePanel();
            sidePanel3 = new DevExpress.XtraEditors.SidePanel();
            layoutControl2 = new DevExpress.XtraLayout.LayoutControl();
            layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)txtCurveType.Properties).BeginInit();
@@ -78,33 +77,21 @@
            ((ISupportInitialize)txtCode.Properties).BeginInit();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)layoutControlItem2).BeginInit();
            ((ISupportInitialize)layoutControlItem3).BeginInit();
            ((ISupportInitialize)layoutControlItem4).BeginInit();
            ((ISupportInitialize)layoutControlItem5).BeginInit();
            ((ISupportInitialize)layoutControlItem8).BeginInit();
            ((ISupportInitialize)emptySpaceItem1).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)layoutControlItem6).BeginInit();
            sidePanel1.SuspendLayout();
            sidePanel2.SuspendLayout();
            sidePanel3.SuspendLayout();
            ((ISupportInitialize)layoutControl2).BeginInit();
            layoutControl2.SuspendLayout();
            ((ISupportInitialize)layoutControlGroup1).BeginInit();
            ((ISupportInitialize)layoutControlItem3).BeginInit();
            ((ISupportInitialize)layoutControlGroup2).BeginInit();
            ((ISupportInitialize)layoutControlGroup3).BeginInit();
            SuspendLayout();
            //
            // splitContainerControl1
            //
            splitContainerControl1.Dock = DockStyle.Fill;
            splitContainerControl1.Location = new Point(0, 0);
            splitContainerControl1.Name = "splitContainerControl1";
            //
            // splitContainerControl1.Panel1
            //
            splitContainerControl1.Panel1.Controls.Add(layoutControl1);
            splitContainerControl1.Panel1.Text = "Panel1";
            //
            // splitContainerControl1.Panel2
            //
            splitContainerControl1.Panel2.Controls.Add(hydroCurveViewCtrl1);
            splitContainerControl1.Panel2.Text = "Panel2";
            splitContainerControl1.Size = new Size(913, 563);
            splitContainerControl1.SplitterPosition = 295;
            splitContainerControl1.TabIndex = 0;
            // 
            // layoutControl1
            // 
@@ -113,40 +100,57 @@
            layoutControl1.Controls.Add(btnSave);
            layoutControl1.Controls.Add(txtDescription);
            layoutControl1.Controls.Add(txtName);
            layoutControl1.Controls.Add(gridControl1);
            layoutControl1.Controls.Add(txtCode);
            layoutControl1.Dock = DockStyle.Fill;
            layoutControl1.Location = new Point(0, 0);
            layoutControl1.Margin = new Padding(4, 5, 4, 5);
            layoutControl1.Name = "layoutControl1";
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(683, 274, 650, 400);
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(567, 228, 1237, 1023);
            layoutControl1.Root = Root;
            layoutControl1.Size = new Size(295, 563);
            layoutControl1.Size = new Size(403, 249);
            layoutControl1.TabIndex = 0;
            layoutControl1.Text = "layoutControl1";
            // 
            // btnImportByExcel
            // 
            btnImportByExcel.Location = new Point(97, 539);
            btnImportByExcel.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary;
            btnImportByExcel.Appearance.ForeColor = Color.White;
            btnImportByExcel.Appearance.Options.UseBackColor = true;
            btnImportByExcel.Appearance.Options.UseForeColor = true;
            btnImportByExcel.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True;
            btnImportByExcel.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("btnImportByExcel.ImageOptions.SvgImage");
            btnImportByExcel.ImageOptions.SvgImageSize = new Size(18, 18);
            btnImportByExcel.Location = new Point(50, 202);
            btnImportByExcel.Margin = new Padding(4, 5, 4, 5);
            btnImportByExcel.Name = "btnImportByExcel";
            btnImportByExcel.Size = new Size(96, 22);
            btnImportByExcel.Size = new Size(115, 32);
            btnImportByExcel.StyleController = layoutControl1;
            btnImportByExcel.TabIndex = 13;
            btnImportByExcel.Text = "Excel导入";
            // 
            // txtCurveType
            // 
            txtCurveType.Location = new Point(42, 50);
            txtCurveType.Location = new Point(66, 109);
            txtCurveType.Margin = new Padding(4, 5, 4, 5);
            txtCurveType.Name = "txtCurveType";
            txtCurveType.Properties.ReadOnly = true;
            txtCurveType.Size = new Size(251, 20);
            txtCurveType.Size = new Size(325, 28);
            txtCurveType.StyleController = layoutControl1;
            txtCurveType.TabIndex = 12;
            // 
            // btnSave
            // 
            btnSave.Location = new Point(197, 539);
            btnSave.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Question;
            btnSave.Appearance.ForeColor = Color.White;
            btnSave.Appearance.Options.UseBackColor = true;
            btnSave.Appearance.Options.UseForeColor = true;
            btnSave.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True;
            btnSave.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("btnSave.ImageOptions.SvgImage");
            btnSave.ImageOptions.SvgImageSize = new Size(18, 18);
            btnSave.Location = new Point(245, 202);
            btnSave.Margin = new Padding(4, 5, 4, 5);
            btnSave.Name = "btnSave";
            btnSave.Size = new Size(96, 22);
            btnSave.Size = new Size(108, 32);
            btnSave.StyleController = layoutControl1;
            btnSave.TabIndex = 11;
            btnSave.Text = "保存";
@@ -154,28 +158,32 @@
            // 
            // txtDescription
            // 
            txtDescription.Location = new Point(42, 74);
            txtDescription.Location = new Point(66, 141);
            txtDescription.Margin = new Padding(4, 5, 4, 5);
            txtDescription.Name = "txtDescription";
            txtDescription.Size = new Size(251, 49);
            txtDescription.Size = new Size(325, 54);
            txtDescription.StyleController = layoutControl1;
            txtDescription.TabIndex = 8;
            // 
            // txtName
            // 
            txtName.Location = new Point(42, 26);
            txtName.Location = new Point(66, 77);
            txtName.Margin = new Padding(4, 5, 4, 5);
            txtName.Name = "txtName";
            txtName.Size = new Size(251, 20);
            txtName.Size = new Size(325, 28);
            txtName.StyleController = layoutControl1;
            txtName.TabIndex = 7;
            // 
            // gridControl1
            // 
            gridControl1.DataSource = hydroCurvePointViewModelBindingSource;
            gridControl1.Location = new Point(2, 127);
            gridControl1.EmbeddedNavigator.Margin = new Padding(4, 5, 4, 5);
            gridControl1.Location = new Point(0, 33);
            gridControl1.MainView = gridView1;
            gridControl1.Margin = new Padding(4, 5, 4, 5);
            gridControl1.Name = "gridControl1";
            gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemButtonEdit1 });
            gridControl1.Size = new Size(291, 408);
            gridControl1.Size = new Size(403, 784);
            gridControl1.TabIndex = 6;
            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
            // 
@@ -188,53 +196,59 @@
            gridView1.Appearance.ViewCaption.Options.UseTextOptions = true;
            gridView1.Appearance.ViewCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;
            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colX, colY, colDelete });
            gridView1.DetailHeight = 550;
            gridView1.GridControl = gridControl1;
            gridView1.Name = "gridView1";
            gridView1.OptionsView.ShowViewCaption = true;
            gridView1.OptionsEditForm.PopupEditFormWidth = 1143;
            gridView1.ViewCaption = "曲线点";
            gridView1.RowCellClick += gridView1_RowCellClick;
            // 
            // colX
            // 
            colX.FieldName = "X";
            colX.MinWidth = 29;
            colX.Name = "colX";
            colX.Visible = true;
            colX.VisibleIndex = 0;
            colX.Width = 107;
            // 
            // colY
            // 
            colY.FieldName = "Y";
            colY.MinWidth = 29;
            colY.Name = "colY";
            colY.Visible = true;
            colY.VisibleIndex = 1;
            colY.Width = 107;
            // 
            // colDelete
            // 
            colDelete.Caption = "删除";
            colDelete.ColumnEdit = repositoryItemButtonEdit1;
            colDelete.MaxWidth = 50;
            colDelete.MinWidth = 50;
            colDelete.MaxWidth = 71;
            colDelete.MinWidth = 71;
            colDelete.Name = "colDelete";
            colDelete.OptionsColumn.AllowEdit = false;
            colDelete.Visible = true;
            colDelete.VisibleIndex = 2;
            colDelete.Width = 50;
            colDelete.Width = 71;
            // 
            // repositoryItemButtonEdit1
            // 
            repositoryItemButtonEdit1.AutoHeight = false;
            editorButtonImageOptions1.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions1.SvgImage");
            editorButtonImageOptions1.SvgImageSize = new Size(20, 20);
            repositoryItemButtonEdit1.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
            editorButtonImageOptions2.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions2.SvgImage");
            editorButtonImageOptions2.SvgImageSize = new Size(20, 20);
            repositoryItemButtonEdit1.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions2, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject5, serializableAppearanceObject6, serializableAppearanceObject7, serializableAppearanceObject8, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) });
            repositoryItemButtonEdit1.Name = "repositoryItemButtonEdit1";
            repositoryItemButtonEdit1.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
            // 
            // txtCode
            // 
            txtCode.Location = new Point(42, 2);
            txtCode.Location = new Point(66, 45);
            txtCode.Margin = new Padding(4, 5, 4, 5);
            txtCode.Name = "txtCode";
            txtCode.Properties.ReadOnly = true;
            txtCode.Size = new Size(251, 20);
            txtCode.Size = new Size(325, 28);
            txtCode.StyleController = layoutControl1;
            txtCode.TabIndex = 5;
            // 
@@ -242,10 +256,10 @@
            // 
            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            Root.GroupBordersVisible = false;
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem3, layoutControlItem4, layoutControlItem5, layoutControlItem8, emptySpaceItem1, layoutControlItem1, layoutControlItem6 });
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlGroup3 });
            Root.Name = "Root";
            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            Root.Size = new Size(295, 563);
            Root.Size = new Size(403, 249);
            Root.TextVisible = false;
            // 
            // layoutControlItem2
@@ -253,101 +267,161 @@
            layoutControlItem2.Control = txtCode;
            layoutControlItem2.Location = new Point(0, 0);
            layoutControlItem2.Name = "layoutControlItem2";
            layoutControlItem2.Size = new Size(295, 24);
            layoutControlItem2.Size = new Size(383, 32);
            layoutControlItem2.Text = "编码:";
            layoutControlItem2.TextSize = new Size(28, 14);
            //
            // layoutControlItem3
            //
            layoutControlItem3.Control = gridControl1;
            layoutControlItem3.Location = new Point(0, 125);
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.Size = new Size(295, 412);
            layoutControlItem3.TextSize = new Size(0, 0);
            layoutControlItem3.TextVisible = false;
            layoutControlItem2.TextSize = new Size(42, 22);
            // 
            // layoutControlItem4
            // 
            layoutControlItem4.Control = txtName;
            layoutControlItem4.Location = new Point(0, 24);
            layoutControlItem4.Location = new Point(0, 32);
            layoutControlItem4.Name = "layoutControlItem4";
            layoutControlItem4.Size = new Size(295, 24);
            layoutControlItem4.Size = new Size(383, 32);
            layoutControlItem4.Text = "名称:";
            layoutControlItem4.TextSize = new Size(28, 14);
            layoutControlItem4.TextSize = new Size(42, 22);
            // 
            // layoutControlItem5
            // 
            layoutControlItem5.Control = txtDescription;
            layoutControlItem5.Location = new Point(0, 72);
            layoutControlItem5.Location = new Point(0, 96);
            layoutControlItem5.Name = "layoutControlItem5";
            layoutControlItem5.Size = new Size(295, 53);
            layoutControlItem5.Size = new Size(383, 58);
            layoutControlItem5.Text = "说明:";
            layoutControlItem5.TextSize = new Size(28, 14);
            layoutControlItem5.TextSize = new Size(42, 22);
            // 
            // layoutControlItem8
            // 
            layoutControlItem8.Control = btnSave;
            layoutControlItem8.Location = new Point(195, 537);
            layoutControlItem8.MaxSize = new Size(100, 0);
            layoutControlItem8.MinSize = new Size(100, 26);
            layoutControlItem8.Location = new Point(195, 154);
            layoutControlItem8.Name = "layoutControlItem8";
            layoutControlItem8.Size = new Size(100, 26);
            layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
            layoutControlItem8.Padding = new DevExpress.XtraLayout.Utils.Padding(40, 40, 5, 5);
            layoutControlItem8.Size = new Size(188, 42);
            layoutControlItem8.TextSize = new Size(0, 0);
            layoutControlItem8.TextVisible = false;
            //
            // emptySpaceItem1
            //
            emptySpaceItem1.AllowHotTrack = false;
            emptySpaceItem1.Location = new Point(0, 537);
            emptySpaceItem1.Name = "emptySpaceItem1";
            emptySpaceItem1.Size = new Size(95, 26);
            emptySpaceItem1.TextSize = new Size(0, 0);
            // 
            // layoutControlItem1
            // 
            layoutControlItem1.Control = txtCurveType;
            layoutControlItem1.Location = new Point(0, 48);
            layoutControlItem1.Location = new Point(0, 64);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Size = new Size(295, 24);
            layoutControlItem1.Size = new Size(383, 32);
            layoutControlItem1.Text = "类型:";
            layoutControlItem1.TextSize = new Size(28, 14);
            layoutControlItem1.TextSize = new Size(42, 22);
            // 
            // layoutControlItem6
            // 
            layoutControlItem6.Control = btnImportByExcel;
            layoutControlItem6.Location = new Point(95, 537);
            layoutControlItem6.MaxSize = new Size(100, 26);
            layoutControlItem6.MinSize = new Size(100, 26);
            layoutControlItem6.Location = new Point(0, 154);
            layoutControlItem6.Name = "layoutControlItem6";
            layoutControlItem6.Size = new Size(100, 26);
            layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
            layoutControlItem6.Padding = new DevExpress.XtraLayout.Utils.Padding(40, 40, 5, 5);
            layoutControlItem6.Size = new Size(195, 42);
            layoutControlItem6.TextSize = new Size(0, 0);
            layoutControlItem6.TextVisible = false;
            // 
            // hydroCurveViewCtrl1
            // 
            hydroCurveViewCtrl1.Dock = DockStyle.Fill;
            hydroCurveViewCtrl1.Location = new Point(0, 0);
            hydroCurveViewCtrl1.Location = new Point(404, 0);
            hydroCurveViewCtrl1.Margin = new Padding(6, 8, 6, 8);
            hydroCurveViewCtrl1.Name = "hydroCurveViewCtrl1";
            hydroCurveViewCtrl1.Size = new Size(608, 563);
            hydroCurveViewCtrl1.Size = new Size(900, 1067);
            hydroCurveViewCtrl1.TabIndex = 0;
            hydroCurveViewCtrl1.TitleTextX = "Axis of arguments";
            hydroCurveViewCtrl1.TitleTextY = "Axis of values";
            // 
            // sidePanel1
            //
            sidePanel1.Controls.Add(sidePanel3);
            sidePanel1.Controls.Add(sidePanel2);
            sidePanel1.Dock = DockStyle.Left;
            sidePanel1.Location = new Point(0, 0);
            sidePanel1.Name = "sidePanel1";
            sidePanel1.Size = new Size(404, 1067);
            sidePanel1.TabIndex = 1;
            sidePanel1.Text = "sidePanel1";
            //
            // sidePanel2
            //
            sidePanel2.Controls.Add(layoutControl1);
            sidePanel2.Dock = DockStyle.Top;
            sidePanel2.Location = new Point(0, 0);
            sidePanel2.Name = "sidePanel2";
            sidePanel2.Size = new Size(403, 250);
            sidePanel2.TabIndex = 0;
            sidePanel2.Text = "sidePanel2";
            //
            // sidePanel3
            //
            sidePanel3.Controls.Add(layoutControl2);
            sidePanel3.Dock = DockStyle.Fill;
            sidePanel3.Location = new Point(0, 250);
            sidePanel3.Name = "sidePanel3";
            sidePanel3.Size = new Size(403, 817);
            sidePanel3.TabIndex = 1;
            sidePanel3.Text = "sidePanel3";
            //
            // layoutControl2
            //
            layoutControl2.Controls.Add(gridControl1);
            layoutControl2.Dock = DockStyle.Fill;
            layoutControl2.Location = new Point(0, 0);
            layoutControl2.Name = "layoutControl2";
            layoutControl2.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1061, 721, 975, 600);
            layoutControl2.Root = layoutControlGroup1;
            layoutControl2.Size = new Size(403, 817);
            layoutControl2.TabIndex = 0;
            layoutControl2.Text = "layoutControl2";
            //
            // layoutControlGroup1
            //
            layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            layoutControlGroup1.GroupBordersVisible = false;
            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlGroup2 });
            layoutControlGroup1.Name = "Root";
            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup1.Size = new Size(403, 817);
            layoutControlGroup1.TextVisible = false;
            //
            // layoutControlItem3
            //
            layoutControlItem3.Control = gridControl1;
            layoutControlItem3.Location = new Point(0, 0);
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem3.Size = new Size(403, 784);
            layoutControlItem3.TextSize = new Size(0, 0);
            layoutControlItem3.TextVisible = false;
            //
            // layoutControlGroup2
            //
            layoutControlGroup2.GroupStyle = DevExpress.Utils.GroupStyle.Title;
            layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem3 });
            layoutControlGroup2.Location = new Point(0, 0);
            layoutControlGroup2.Name = "layoutControlGroup2";
            layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup2.Size = new Size(403, 817);
            layoutControlGroup2.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup2.Text = "曲线定义点";
            //
            // layoutControlGroup3
            //
            layoutControlGroup3.GroupStyle = DevExpress.Utils.GroupStyle.Title;
            layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem4, layoutControlItem1, layoutControlItem5, layoutControlItem6, layoutControlItem8 });
            layoutControlGroup3.Location = new Point(0, 0);
            layoutControlGroup3.Name = "layoutControlGroup3";
            layoutControlGroup3.Size = new Size(403, 249);
            layoutControlGroup3.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup3.Text = "基础信息";
            //
            // SetHydroCurveCtrl
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleDimensions = new SizeF(10F, 22F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(splitContainerControl1);
            Controls.Add(hydroCurveViewCtrl1);
            Controls.Add(sidePanel1);
            Margin = new Padding(4, 5, 4, 5);
            Name = "SetHydroCurveCtrl";
            Size = new Size(913, 563);
            ((ISupportInitialize)splitContainerControl1.Panel1).EndInit();
            splitContainerControl1.Panel1.ResumeLayout(false);
            ((ISupportInitialize)splitContainerControl1.Panel2).EndInit();
            splitContainerControl1.Panel2.ResumeLayout(false);
            ((ISupportInitialize)splitContainerControl1).EndInit();
            splitContainerControl1.ResumeLayout(false);
            Size = new Size(1304, 1067);
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
            ((ISupportInitialize)txtCurveType.Properties).EndInit();
@@ -360,19 +434,24 @@
            ((ISupportInitialize)txtCode.Properties).EndInit();
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)layoutControlItem2).EndInit();
            ((ISupportInitialize)layoutControlItem3).EndInit();
            ((ISupportInitialize)layoutControlItem4).EndInit();
            ((ISupportInitialize)layoutControlItem5).EndInit();
            ((ISupportInitialize)layoutControlItem8).EndInit();
            ((ISupportInitialize)emptySpaceItem1).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)layoutControlItem6).EndInit();
            sidePanel1.ResumeLayout(false);
            sidePanel2.ResumeLayout(false);
            sidePanel3.ResumeLayout(false);
            ((ISupportInitialize)layoutControl2).EndInit();
            layoutControl2.ResumeLayout(false);
            ((ISupportInitialize)layoutControlGroup1).EndInit();
            ((ISupportInitialize)layoutControlItem3).EndInit();
            ((ISupportInitialize)layoutControlGroup2).EndInit();
            ((ISupportInitialize)layoutControlGroup3).EndInit();
            ResumeLayout(false);
        }
        #endregion
        private DevExpress.XtraEditors.SplitContainerControl splitContainerControl1;
        private DevExpress.XtraLayout.LayoutControl layoutControl1;
        private DevExpress.XtraLayout.LayoutControlGroup Root;
        private HydroCurveViewCtrl hydroCurveViewCtrl1;
@@ -380,7 +459,6 @@
        private DevExpress.XtraGrid.Views.Grid.GridView gridView1;
        private DevExpress.XtraEditors.TextEdit txtCode;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
        private BindingSource hydroCurvePointViewModelBindingSource;
        private DevExpress.XtraGrid.Columns.GridColumn colX;
        private DevExpress.XtraGrid.Columns.GridColumn colY;
@@ -390,12 +468,19 @@
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8;
        private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1;
        private DevExpress.XtraEditors.SimpleButton btnImportByExcel;
        private DevExpress.XtraEditors.TextEdit txtCurveType;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6;
        private DevExpress.XtraGrid.Columns.GridColumn colDelete;
        private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit1;
        private DevExpress.XtraEditors.SidePanel sidePanel1;
        private DevExpress.XtraEditors.SidePanel sidePanel3;
        private DevExpress.XtraLayout.LayoutControl layoutControl2;
        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1;
        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
        private DevExpress.XtraEditors.SidePanel sidePanel2;
        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3;
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.cs
@@ -1,14 +1,4 @@
using DevExpress.XtraEditors;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
using System.Data;
namespace Yw.WinFrmUI
{
WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.resx
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Microsoft ResX Schema
    Version 2.0
@@ -48,7 +48,7 @@
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -117,11 +117,92 @@
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
  <data name="btnImportByExcel.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAHYNAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5H
        cmVlbntmaWxsOiMwMzlDMjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgkuc3Qwe29wYWNpdHk6MC4z
        O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTgsNGgxOHY2aDJWM2MwLTAuNS0wLjUtMS0xLTFIN0M2LjUs
        Miw2LDIuNSw2LDN2N2gyVjR6IiBjbGFzcz0iQmxhY2siIC8+DQogIDxwYXRoIGQ9Ik0yNiwyNkg4di04
        SDZ2OWMwLDAuNSwwLjUsMSwxLDFoMjBjMC41LDAsMS0wLjUsMS0xdi05aC0yVjI2eiIgY2xhc3M9IkJs
        YWNrIiAvPg0KICA8cGF0aCBkPSJNMzEsOEgzQzIuNCw4LDIsOC40LDIsOXYxMGMwLDAuNiwwLjQsMSwx
        LDFoMjhjMC42LDAsMS0wLjQsMS0xVjlDMzIsOC40LDMxLjYsOCwzMSw4eiBNOS4xLDE4bC0xLjMtMi41
        ICBjLTAuMS0wLjEtMC4xLTAuMy0wLjItMC41aDBjMCwwLjEtMC4xLDAuMy0wLjIsMC41TDYuMSwxOEg0
        bDIuNS0zLjlsLTIuMi0zLjloMi4xbDEuMSwyLjNjMC4xLDAuMiwwLjIsMC40LDAuMiwwLjdoMCAgYzAt
        MC4yLDAuMS0wLjQsMC4yLTAuN2wxLjItMi4zaDEuOWwtMi4zLDMuOGwyLjQsMy45SDkuMXogTTE2Ljcs
        MThoLTQuNnYtNy43aDEuN3Y2LjNoMi45VjE4eiBNMjIuNCwxNi45Yy0wLjIsMC4zLTAuNCwwLjUtMC43
        LDAuNyAgcy0wLjYsMC4zLTEsMC40Yy0wLjQsMC4xLTAuOCwwLjEtMS4yLDAuMWMtMC40LDAtMC44LDAt
        MS4yLTAuMWMtMC40LTAuMS0wLjctMC4yLTEtMC4zVjE2YzAuMywwLjMsMC42LDAuNSwxLDAuNnMwLjcs
        MC4yLDEuMSwwLjIgIGMwLjIsMCwwLjQsMCwwLjYtMC4xczAuMy0wLjEsMC40LTAuMmMwLjEtMC4xLDAu
        Mi0wLjIsMC4yLTAuMmMwLjEtMC4xLDAuMS0wLjIsMC4xLTAuM2MwLTAuMiwwLTAuMy0wLjEtMC40ICBj
        LTAuMS0wLjEtMC4yLTAuMi0wLjQtMC4zUzIwLDE1LjEsMTkuOCwxNXMtMC40LTAuMi0wLjctMC4zYy0w
        LjYtMC4zLTEuMS0wLjYtMS4zLTAuOWMtMC4zLTAuNC0wLjQtMC44LTAuNC0xLjMgIGMwLTAuNCwwLjEt
        MC43LDAuMi0xYzAuMi0wLjMsMC40LTAuNSwwLjctMC43YzAuMy0wLjIsMC42LTAuMywxLTAuNHMwLjgt
        MC4xLDEuMi0wLjFjMC40LDAsMC44LDAsMS4xLDAuMWMwLjMsMCwwLjYsMC4xLDAuOSwwLjIgIHYxLjZj
        LTAuMS0wLjEtMC4zLTAuMi0wLjQtMC4ycy0wLjMtMC4xLTAuNS0wLjJjLTAuMiwwLTAuMy0wLjEtMC41
        LTAuMXMtMC4zLDAtMC41LDBjLTAuMiwwLTAuNCwwLTAuNSwwLjFjLTAuMiwwLTAuMywwLjEtMC40LDAu
        MiAgYy0wLjEsMC4xLTAuMiwwLjEtMC4zLDAuMmMtMC4xLDAuMS0wLjEsMC4yLTAuMSwwLjNjMCwwLjEs
        MCwwLjIsMC4xLDAuM2MwLjEsMC4xLDAuMiwwLjIsMC4zLDAuM2MwLjEsMC4xLDAuMywwLjIsMC41LDAu
        MyAgczAuNCwwLjIsMC42LDAuM2MwLjMsMC4xLDAuNiwwLjMsMC44LDAuNGMwLjIsMC4xLDAuNSwwLjMs
        MC42LDAuNWMwLjIsMC4yLDAuMywwLjQsMC40LDAuNnMwLjEsMC41LDAuMSwwLjggIEMyMi42LDE2LjMs
        MjIuNSwxNi42LDIyLjQsMTYuOXogTTI4LjEsMThsLTEuMy0yLjVjLTAuMS0wLjEtMC4xLTAuMy0wLjIt
        MC41aDBjMCwwLjEtMC4xLDAuMy0wLjIsMC41TDI1LjEsMThIMjNsMi41LTMuOWwtMi4yLTMuOSAgaDIu
        MWwxLjEsMi4zYzAuMSwwLjIsMC4yLDAuNCwwLjIsMC43aDBjMC0wLjIsMC4xLTAuNCwwLjItMC43bDEu
        Mi0yLjNoMS45bC0yLjMsMy44bDIuNCwzLjlIMjguMXoiIGNsYXNzPSJHcmVlbiIgLz4NCiAgPGcgY2xh
        c3M9InN0MCI+DQogICAgPHBhdGggZD0iTTMxLDhIM0MyLjQsOCwyLDguNCwyLDl2MTBjMCwwLjYsMC40
        LDEsMSwxaDI4YzAuNiwwLDEtMC40LDEtMVY5QzMyLDguNCwzMS42LDgsMzEsOHogTTkuMSwxOGwtMS4z
        LTIuNSAgIGMtMC4xLTAuMS0wLjEtMC4zLTAuMi0wLjVoMGMwLDAuMS0wLjEsMC4zLTAuMiwwLjVMNi4x
        LDE4SDRsMi41LTMuOWwtMi4yLTMuOWgyLjFsMS4xLDIuM2MwLjEsMC4yLDAuMiwwLjQsMC4yLDAuN2gw
        ICAgYzAtMC4yLDAuMS0wLjQsMC4yLTAuN2wxLjItMi4zaDEuOWwtMi4zLDMuOGwyLjQsMy45SDkuMXog
        TTE2LjcsMThoLTQuNnYtNy43aDEuN3Y2LjNoMi45VjE4eiBNMjIuNCwxNi45ICAgYy0wLjIsMC4zLTAu
        NCwwLjUtMC43LDAuN3MtMC42LDAuMy0xLDAuNGMtMC40LDAuMS0wLjgsMC4xLTEuMiwwLjFjLTAuNCww
        LTAuOCwwLTEuMi0wLjFjLTAuNC0wLjEtMC43LTAuMi0xLTAuM1YxNiAgIGMwLjMsMC4zLDAuNiwwLjUs
        MSwwLjZzMC43LDAuMiwxLjEsMC4yYzAuMiwwLDAuNCwwLDAuNi0wLjFzMC4zLTAuMSwwLjQtMC4yYzAu
        MS0wLjEsMC4yLTAuMiwwLjItMC4yYzAuMS0wLjEsMC4xLTAuMiwwLjEtMC4zICAgYzAtMC4yLDAtMC4z
        LTAuMS0wLjRjLTAuMS0wLjEtMC4yLTAuMi0wLjQtMC4zUzIwLDE1LjEsMTkuOCwxNXMtMC40LTAuMi0w
        LjctMC4zYy0wLjYtMC4zLTEuMS0wLjYtMS4zLTAuOSAgIGMtMC4zLTAuNC0wLjQtMC44LTAuNC0xLjNj
        MC0wLjQsMC4xLTAuNywwLjItMWMwLjItMC4zLDAuNC0wLjUsMC43LTAuN2MwLjMtMC4yLDAuNi0wLjMs
        MS0wLjRzMC44LTAuMSwxLjItMC4xICAgYzAuNCwwLDAuOCwwLDEuMSwwLjFjMC4zLDAsMC42LDAuMSww
        LjksMC4ydjEuNmMtMC4xLTAuMS0wLjMtMC4yLTAuNC0wLjJzLTAuMy0wLjEtMC41LTAuMmMtMC4yLDAt
        MC4zLTAuMS0wLjUtMC4xcy0wLjMsMC0wLjUsMCAgIGMtMC4yLDAtMC40LDAtMC41LDAuMWMtMC4yLDAt
        MC4zLDAuMS0wLjQsMC4yYy0wLjEsMC4xLTAuMiwwLjEtMC4zLDAuMmMtMC4xLDAuMS0wLjEsMC4yLTAu
        MSwwLjNjMCwwLjEsMCwwLjIsMC4xLDAuMyAgIGMwLjEsMC4xLDAuMiwwLjIsMC4zLDAuM2MwLjEsMC4x
        LDAuMywwLjIsMC41LDAuM3MwLjQsMC4yLDAuNiwwLjNjMC4zLDAuMSwwLjYsMC4zLDAuOCwwLjRjMC4y
        LDAuMSwwLjUsMC4zLDAuNiwwLjUgICBjMC4yLDAuMiwwLjMsMC40LDAuNCwwLjZzMC4xLDAuNSwwLjEs
        MC44QzIyLjYsMTYuMywyMi41LDE2LjYsMjIuNCwxNi45eiBNMjguMSwxOGwtMS4zLTIuNWMtMC4xLTAu
        MS0wLjEtMC4zLTAuMi0wLjVoMCAgIGMwLDAuMS0wLjEsMC4zLTAuMiwwLjVMMjUuMSwxOEgyM2wyLjUt
        My45bC0yLjItMy45aDIuMWwxLjEsMi4zYzAuMSwwLjIsMC4yLDAuNCwwLjIsMC43aDBjMC0wLjIsMC4x
        LTAuNCwwLjItMC43bDEuMi0yLjNoMS45ICAgbC0yLjMsMy44bDIuNCwzLjlIMjguMXoiIGNsYXNzPSJC
        bHVlIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value>
  </data>
  <data name="btnSave.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAO4BAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iU2F2ZSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIg
        MzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cjwvc3R5
        bGU+DQogIDxwYXRoIGQ9Ik0yNyw0aC0zdjEwSDhWNEg1QzQuNCw0LDQsNC40LDQsNXYyMmMwLDAuNiww
        LjQsMSwxLDFoMjJjMC42LDAsMS0wLjQsMS0xVjVDMjgsNC40LDI3LjYsNCwyNyw0eiBNMjQsMjRIOHYt
        NiAgaDE2VjI0eiBNMTAsNHY4aDEwVjRIMTB6IE0xNCwxMGgtMlY2aDJWMTB6IiBjbGFzcz0iQmxhY2si
        IC8+DQo8L3N2Zz4L
</value>
  </data>
  <metadata name="hydroCurvePointViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
  <data name="editorButtonImageOptions1.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
  <data name="editorButtonImageOptions2.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj
@@ -8,6 +8,15 @@
  </PropertyGroup>
  <ItemGroup>
    <Compile Remove="03-property\06-curve\SetHydroCurveCtrl - å¤åˆ¶.cs" />
    <Compile Remove="03-property\06-curve\SetHydroCurveCtrl - å¤åˆ¶.Designer.cs" />
  </ItemGroup>
  <ItemGroup>
    <EmbeddedResource Remove="03-property\06-curve\SetHydroCurveCtrl - å¤åˆ¶.resx" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="DevExpress.Win.Design" Version="23.2.4" />
    <PackageReference Include="Yw.BLL.Basic.Core" Version="3.2.8" />
    <PackageReference Include="Yw.BLL.Hydro.Core" Version="3.3.9" />