lx
2025-07-03 ad8e8447cab9adb6d9bc30ad6f78e92cc9a9789b
update ui
已修改2个文件
已删除2个文件
已添加2个文件
已重命名1个文件
866 ■■■■ 文件已修改
ErrorAnalysis.Service/COMergeCalcService.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Service/Utility.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.UI/Form1.Designer.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.UI/Form1.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.UI/FrmMain.Designer.cs 684 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.UI/FrmMain.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.UI/FrmMain.resx 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Service/COMergeCalcService.cs
@@ -9,6 +9,9 @@
{
    public class COMergeCalcService
    {
        //Ncoef=1e8*2.54*2.54*2*6*11*2*77*0.2/0.6*speed;
        //Fcoef=1e8*2.54*2.54*4*6*2*11*77*0.2/0.6*speed;
        const double _gg = (9.0 - 0.0) / 255.0;//0.03529
        const double _offset = 0.0;
ErrorAnalysis.Service/Utility.cs
@@ -23,13 +23,5 @@
            double y = y0 + (value - x0) * (y1 - y0) / (x1 - x0);
            return y;
        }
        public static (double, double) InterpolateBySw(double c, double o, double sw)
        {
            var cRes = (100 - sw) / 100 * c;
            var oRes = sw / 100 * o;
            return (cRes, oRes);
        }
    }
}
ErrorAnalysis.UI/Form1.Designer.cs
文件已删除
ErrorAnalysis.UI/Form1.cs
文件已删除
ErrorAnalysis.UI/FrmMain.Designer.cs
对比新文件
@@ -0,0 +1,684 @@
锘縩amespace ErrorAnalysis.UI
{
    partial class FrmMain
    {
        /// <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 Windows Form 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()
        {
            btnAnalysis = new Button();
            gpBore = new GroupBox();
            textBox8 = new TextBox();
            label16 = new Label();
            label13 = new Label();
            textBox7 = new TextBox();
            label14 = new Label();
            label11 = new Label();
            textBox6 = new TextBox();
            label12 = new Label();
            label9 = new Label();
            textBox5 = new TextBox();
            label10 = new Label();
            label7 = new Label();
            textBox4 = new TextBox();
            label8 = new Label();
            label5 = new Label();
            textBox3 = new TextBox();
            label6 = new Label();
            label3 = new Label();
            textBox2 = new TextBox();
            label4 = new Label();
            label2 = new Label();
            textBox1 = new TextBox();
            btnSelectBore = new Button();
            label1 = new Label();
            gbTarget = new GroupBox();
            label22 = new Label();
            numericUpDown3 = new NumericUpDown();
            label21 = new Label();
            pnlLockPass = new Panel();
            nudPass = new NumericUpDown();
            label23 = new Label();
            pnlLockSpeed = new Panel();
            cmbSpeedUnit = new ComboBox();
            numericUpDown2 = new NumericUpDown();
            label20 = new Label();
            panel1 = new Panel();
            rdoLockSpeed = new RadioButton();
            rdoLockPass = new RadioButton();
            label19 = new Label();
            label18 = new Label();
            label17 = new Label();
            numericUpDown1 = new NumericUpDown();
            label15 = new Label();
            nudSw = new NumericUpDown();
            gbResult = new GroupBox();
            btnReport = new Button();
            label24 = new Label();
            txtDataPath = new TextBox();
            btnSelectDataSource = new Button();
            gpBore.SuspendLayout();
            gbTarget.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)numericUpDown3).BeginInit();
            pnlLockPass.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)nudPass).BeginInit();
            pnlLockSpeed.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)numericUpDown2).BeginInit();
            panel1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)numericUpDown1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)nudSw).BeginInit();
            SuspendLayout();
            //
            // btnAnalysis
            //
            btnAnalysis.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
            btnAnalysis.Location = new Point(616, 589);
            btnAnalysis.Name = "btnAnalysis";
            btnAnalysis.Size = new Size(75, 23);
            btnAnalysis.TabIndex = 0;
            btnAnalysis.Text = "Analysis";
            btnAnalysis.UseVisualStyleBackColor = true;
            btnAnalysis.Click += btnGetAllPipe_Click;
            //
            // gpBore
            //
            gpBore.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            gpBore.Controls.Add(textBox8);
            gpBore.Controls.Add(label16);
            gpBore.Controls.Add(label13);
            gpBore.Controls.Add(textBox7);
            gpBore.Controls.Add(label14);
            gpBore.Controls.Add(label11);
            gpBore.Controls.Add(textBox6);
            gpBore.Controls.Add(label12);
            gpBore.Controls.Add(label9);
            gpBore.Controls.Add(textBox5);
            gpBore.Controls.Add(label10);
            gpBore.Controls.Add(label7);
            gpBore.Controls.Add(textBox4);
            gpBore.Controls.Add(label8);
            gpBore.Controls.Add(label5);
            gpBore.Controls.Add(textBox3);
            gpBore.Controls.Add(label6);
            gpBore.Controls.Add(label3);
            gpBore.Controls.Add(textBox2);
            gpBore.Controls.Add(label4);
            gpBore.Controls.Add(label2);
            gpBore.Controls.Add(textBox1);
            gpBore.Controls.Add(btnSelectBore);
            gpBore.Controls.Add(label1);
            gpBore.Location = new Point(12, 44);
            gpBore.Name = "gpBore";
            gpBore.Size = new Size(760, 186);
            gpBore.TabIndex = 1;
            gpBore.TabStop = false;
            gpBore.Text = "Bore Info";
            //
            // textBox8
            //
            textBox8.Location = new Point(86, 156);
            textBox8.Name = "textBox8";
            textBox8.ReadOnly = true;
            textBox8.Size = new Size(109, 23);
            textBox8.TabIndex = 23;
            //
            // label16
            //
            label16.AutoSize = true;
            label16.Location = new Point(20, 159);
            label16.Name = "label16";
            label16.Size = new Size(61, 17);
            label16.TabIndex = 22;
            label16.Text = "Lithology";
            //
            // label13
            //
            label13.AutoSize = true;
            label13.Location = new Point(435, 126);
            label13.Name = "label13";
            label13.Size = new Size(18, 17);
            label13.TabIndex = 21;
            label13.Text = "in";
            //
            // textBox7
            //
            textBox7.Location = new Point(322, 123);
            textBox7.Name = "textBox7";
            textBox7.ReadOnly = true;
            textBox7.Size = new Size(109, 23);
            textBox7.TabIndex = 20;
            //
            // label14
            //
            label14.AutoSize = true;
            label14.Location = new Point(256, 126);
            label14.Name = "label14";
            label14.Size = new Size(54, 17);
            label14.TabIndex = 19;
            label14.Text = "Tube ID";
            //
            // label11
            //
            label11.AutoSize = true;
            label11.Location = new Point(199, 122);
            label11.Name = "label11";
            label11.Size = new Size(18, 17);
            label11.TabIndex = 18;
            label11.Text = "in";
            //
            // textBox6
            //
            textBox6.Location = new Point(86, 119);
            textBox6.Name = "textBox6";
            textBox6.ReadOnly = true;
            textBox6.Size = new Size(109, 23);
            textBox6.TabIndex = 17;
            //
            // label12
            //
            label12.AutoSize = true;
            label12.Location = new Point(20, 122);
            label12.Name = "label12";
            label12.Size = new Size(60, 17);
            label12.TabIndex = 16;
            label12.Text = "Tube OD";
            //
            // label9
            //
            label9.AutoSize = true;
            label9.Location = new Point(435, 87);
            label9.Name = "label9";
            label9.Size = new Size(18, 17);
            label9.TabIndex = 15;
            label9.Text = "in";
            //
            // textBox5
            //
            textBox5.Location = new Point(322, 84);
            textBox5.Name = "textBox5";
            textBox5.ReadOnly = true;
            textBox5.Size = new Size(109, 23);
            textBox5.TabIndex = 14;
            //
            // label10
            //
            label10.AutoSize = true;
            label10.Location = new Point(252, 87);
            label10.Name = "label10";
            label10.Size = new Size(64, 17);
            label10.TabIndex = 13;
            label10.Text = "Screen ID";
            //
            // label7
            //
            label7.AutoSize = true;
            label7.Location = new Point(199, 85);
            label7.Name = "label7";
            label7.Size = new Size(18, 17);
            label7.TabIndex = 12;
            label7.Text = "in";
            //
            // textBox4
            //
            textBox4.Location = new Point(86, 82);
            textBox4.Name = "textBox4";
            textBox4.ReadOnly = true;
            textBox4.Size = new Size(109, 23);
            textBox4.TabIndex = 11;
            //
            // label8
            //
            label8.AutoSize = true;
            label8.Location = new Point(10, 85);
            label8.Name = "label8";
            label8.Size = new Size(70, 17);
            label8.TabIndex = 10;
            label8.Text = "Screen OD";
            //
            // label5
            //
            label5.AutoSize = true;
            label5.Location = new Point(681, 48);
            label5.Name = "label5";
            label5.Size = new Size(18, 17);
            label5.TabIndex = 9;
            label5.Text = "in";
            //
            // textBox3
            //
            textBox3.Location = new Point(568, 45);
            textBox3.Name = "textBox3";
            textBox3.ReadOnly = true;
            textBox3.Size = new Size(109, 23);
            textBox3.TabIndex = 8;
            //
            // label6
            //
            label6.AutoSize = true;
            label6.Location = new Point(492, 48);
            label6.Name = "label6";
            label6.Size = new Size(64, 17);
            label6.TabIndex = 7;
            label6.Text = "Casing ID";
            //
            // label3
            //
            label3.AutoSize = true;
            label3.Location = new Point(435, 48);
            label3.Name = "label3";
            label3.Size = new Size(18, 17);
            label3.TabIndex = 6;
            label3.Text = "in";
            //
            // textBox2
            //
            textBox2.Location = new Point(322, 45);
            textBox2.Name = "textBox2";
            textBox2.ReadOnly = true;
            textBox2.Size = new Size(109, 23);
            textBox2.TabIndex = 5;
            //
            // label4
            //
            label4.AutoSize = true;
            label4.Location = new Point(246, 48);
            label4.Name = "label4";
            label4.Size = new Size(70, 17);
            label4.TabIndex = 4;
            label4.Text = "Casing OD";
            //
            // label2
            //
            label2.AutoSize = true;
            label2.Location = new Point(199, 48);
            label2.Name = "label2";
            label2.Size = new Size(18, 17);
            label2.TabIndex = 3;
            label2.Text = "in";
            //
            // textBox1
            //
            textBox1.Location = new Point(86, 45);
            textBox1.Name = "textBox1";
            textBox1.ReadOnly = true;
            textBox1.Size = new Size(109, 23);
            textBox1.TabIndex = 2;
            //
            // btnSelectBore
            //
            btnSelectBore.Location = new Point(6, 16);
            btnSelectBore.Name = "btnSelectBore";
            btnSelectBore.Size = new Size(75, 23);
            btnSelectBore.TabIndex = 1;
            btnSelectBore.Text = "Select";
            btnSelectBore.UseVisualStyleBackColor = true;
            //
            // label1
            //
            label1.AutoSize = true;
            label1.Location = new Point(57, 48);
            label1.Name = "label1";
            label1.Size = new Size(23, 17);
            label1.TabIndex = 0;
            label1.Text = "Bit";
            //
            // gbTarget
            //
            gbTarget.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            gbTarget.Controls.Add(label22);
            gbTarget.Controls.Add(numericUpDown3);
            gbTarget.Controls.Add(label21);
            gbTarget.Controls.Add(pnlLockPass);
            gbTarget.Controls.Add(pnlLockSpeed);
            gbTarget.Controls.Add(panel1);
            gbTarget.Controls.Add(label19);
            gbTarget.Controls.Add(label18);
            gbTarget.Controls.Add(label17);
            gbTarget.Controls.Add(numericUpDown1);
            gbTarget.Controls.Add(label15);
            gbTarget.Controls.Add(nudSw);
            gbTarget.Location = new Point(12, 236);
            gbTarget.Name = "gbTarget";
            gbTarget.Size = new Size(760, 143);
            gbTarget.TabIndex = 2;
            gbTarget.TabStop = false;
            gbTarget.Text = "Target";
            //
            // label22
            //
            label22.AutoSize = true;
            label22.Location = new Point(632, 26);
            label22.Name = "label22";
            label22.Size = new Size(19, 17);
            label22.TabIndex = 14;
            label22.Text = "%";
            //
            // numericUpDown3
            //
            numericUpDown3.DecimalPlaces = 1;
            numericUpDown3.Location = new Point(559, 24);
            numericUpDown3.Name = "numericUpDown3";
            numericUpDown3.Size = new Size(67, 23);
            numericUpDown3.TabIndex = 13;
            //
            // label21
            //
            label21.AutoSize = true;
            label21.Location = new Point(446, 26);
            label21.Name = "label21";
            label21.Size = new Size(110, 17);
            label21.TabIndex = 12;
            label21.Text = "Target Error Rate";
            //
            // pnlLockPass
            //
            pnlLockPass.Controls.Add(nudPass);
            pnlLockPass.Controls.Add(label23);
            pnlLockPass.Location = new Point(14, 83);
            pnlLockPass.Name = "pnlLockPass";
            pnlLockPass.Size = new Size(362, 52);
            pnlLockPass.TabIndex = 11;
            pnlLockPass.Visible = false;
            //
            // nudPass
            //
            nudPass.Location = new Point(45, 16);
            nudPass.Name = "nudPass";
            nudPass.Size = new Size(72, 23);
            nudPass.TabIndex = 14;
            //
            // label23
            //
            label23.AutoSize = true;
            label23.Location = new Point(5, 18);
            label23.Name = "label23";
            label23.Size = new Size(34, 17);
            label23.TabIndex = 13;
            label23.Text = "Pass";
            //
            // pnlLockSpeed
            //
            pnlLockSpeed.Controls.Add(cmbSpeedUnit);
            pnlLockSpeed.Controls.Add(numericUpDown2);
            pnlLockSpeed.Controls.Add(label20);
            pnlLockSpeed.Location = new Point(13, 85);
            pnlLockSpeed.Name = "pnlLockSpeed";
            pnlLockSpeed.Size = new Size(362, 52);
            pnlLockSpeed.TabIndex = 10;
            //
            // cmbSpeedUnit
            //
            cmbSpeedUnit.DropDownStyle = ComboBoxStyle.DropDownList;
            cmbSpeedUnit.FormattingEnabled = true;
            cmbSpeedUnit.Items.AddRange(new object[] { "m/min", "ft/min" });
            cmbSpeedUnit.Location = new Point(132, 16);
            cmbSpeedUnit.Name = "cmbSpeedUnit";
            cmbSpeedUnit.Size = new Size(50, 25);
            cmbSpeedUnit.TabIndex = 13;
            //
            // numericUpDown2
            //
            numericUpDown2.DecimalPlaces = 1;
            numericUpDown2.Increment = new decimal(new int[] { 1, 0, 0, 65536 });
            numericUpDown2.Location = new Point(54, 16);
            numericUpDown2.Name = "numericUpDown2";
            numericUpDown2.Size = new Size(72, 23);
            numericUpDown2.TabIndex = 12;
            //
            // label20
            //
            label20.AutoSize = true;
            label20.Location = new Point(3, 18);
            label20.Name = "label20";
            label20.Size = new Size(45, 17);
            label20.TabIndex = 0;
            label20.Text = "Speed";
            //
            // panel1
            //
            panel1.Controls.Add(rdoLockSpeed);
            panel1.Controls.Add(rdoLockPass);
            panel1.Location = new Point(13, 51);
            panel1.Name = "panel1";
            panel1.Size = new Size(205, 28);
            panel1.TabIndex = 9;
            //
            // rdoLockSpeed
            //
            rdoLockSpeed.AutoSize = true;
            rdoLockSpeed.Checked = true;
            rdoLockSpeed.Location = new Point(3, 3);
            rdoLockSpeed.Name = "rdoLockSpeed";
            rdoLockSpeed.Size = new Size(94, 21);
            rdoLockSpeed.TabIndex = 7;
            rdoLockSpeed.TabStop = true;
            rdoLockSpeed.Text = "Lock Speed";
            rdoLockSpeed.UseVisualStyleBackColor = true;
            rdoLockSpeed.CheckedChanged += rdoMode_CheckedChanged;
            //
            // rdoLockPass
            //
            rdoLockPass.AutoSize = true;
            rdoLockPass.Location = new Point(119, 3);
            rdoLockPass.Name = "rdoLockPass";
            rdoLockPass.Size = new Size(83, 21);
            rdoLockPass.TabIndex = 8;
            rdoLockPass.Text = "Lock Pass";
            rdoLockPass.UseVisualStyleBackColor = true;
            rdoLockPass.CheckedChanged += rdoMode_CheckedChanged;
            //
            // label19
            //
            label19.AutoSize = true;
            label19.Location = new Point(398, 26);
            label19.Name = "label19";
            label19.Size = new Size(19, 17);
            label19.TabIndex = 5;
            label19.Text = "%";
            //
            // label18
            //
            label18.AutoSize = true;
            label18.Location = new Point(199, 24);
            label18.Name = "label18";
            label18.Size = new Size(19, 17);
            label18.TabIndex = 4;
            label18.Text = "%";
            //
            // label17
            //
            label17.AutoSize = true;
            label17.Location = new Point(261, 26);
            label17.Name = "label17";
            label17.Size = new Size(55, 17);
            label17.TabIndex = 3;
            label17.Text = "Porosity";
            //
            // numericUpDown1
            //
            numericUpDown1.DecimalPlaces = 1;
            numericUpDown1.Increment = new decimal(new int[] { 5, 0, 0, 0 });
            numericUpDown1.Location = new Point(322, 24);
            numericUpDown1.Name = "numericUpDown1";
            numericUpDown1.Size = new Size(72, 23);
            numericUpDown1.TabIndex = 2;
            //
            // label15
            //
            label15.AutoSize = true;
            label15.Location = new Point(12, 24);
            label15.Name = "label15";
            label15.Size = new Size(105, 17);
            label15.TabIndex = 1;
            label15.Text = "Water saturation";
            //
            // nudSw
            //
            nudSw.DecimalPlaces = 1;
            nudSw.Increment = new decimal(new int[] { 1, 0, 0, 65536 });
            nudSw.Location = new Point(123, 22);
            nudSw.Name = "nudSw";
            nudSw.Size = new Size(72, 23);
            nudSw.TabIndex = 0;
            //
            // gbResult
            //
            gbResult.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
            gbResult.Location = new Point(12, 385);
            gbResult.Name = "gbResult";
            gbResult.Size = new Size(760, 198);
            gbResult.TabIndex = 3;
            gbResult.TabStop = false;
            gbResult.Text = "Result";
            //
            // btnReport
            //
            btnReport.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
            btnReport.Location = new Point(697, 589);
            btnReport.Name = "btnReport";
            btnReport.Size = new Size(75, 23);
            btnReport.TabIndex = 4;
            btnReport.Text = "Report";
            btnReport.UseVisualStyleBackColor = true;
            //
            // label24
            //
            label24.AutoSize = true;
            label24.Location = new Point(17, 19);
            label24.Name = "label24";
            label24.Size = new Size(75, 17);
            label24.TabIndex = 5;
            label24.Text = "DataSource";
            //
            // txtDataPath
            //
            txtDataPath.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
            txtDataPath.Location = new Point(98, 16);
            txtDataPath.Name = "txtDataPath";
            txtDataPath.ReadOnly = true;
            txtDataPath.Size = new Size(601, 23);
            txtDataPath.TabIndex = 6;
            //
            // btnSelectDataSource
            //
            btnSelectDataSource.Location = new Point(705, 16);
            btnSelectDataSource.Name = "btnSelectDataSource";
            btnSelectDataSource.Size = new Size(63, 23);
            btnSelectDataSource.TabIndex = 7;
            btnSelectDataSource.Text = "...";
            btnSelectDataSource.UseVisualStyleBackColor = true;
            btnSelectDataSource.Click += btnSelectDataSource_Click;
            //
            // FrmMain
            //
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(784, 620);
            Controls.Add(btnSelectDataSource);
            Controls.Add(txtDataPath);
            Controls.Add(label24);
            Controls.Add(btnReport);
            Controls.Add(gbResult);
            Controls.Add(gbTarget);
            Controls.Add(gpBore);
            Controls.Add(btnAnalysis);
            Name = "FrmMain";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "Job Planner";
            Load += FrmMain_Load;
            gpBore.ResumeLayout(false);
            gpBore.PerformLayout();
            gbTarget.ResumeLayout(false);
            gbTarget.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)numericUpDown3).EndInit();
            pnlLockPass.ResumeLayout(false);
            pnlLockPass.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)nudPass).EndInit();
            pnlLockSpeed.ResumeLayout(false);
            pnlLockSpeed.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)numericUpDown2).EndInit();
            panel1.ResumeLayout(false);
            panel1.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)numericUpDown1).EndInit();
            ((System.ComponentModel.ISupportInitialize)nudSw).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }
        #endregion
        private Button btnAnalysis;
        private GroupBox gpBore;
        private GroupBox gbTarget;
        private GroupBox gbResult;
        private Button btnReport;
        private Button btnSelectBore;
        private Label label1;
        private Label label5;
        private TextBox textBox3;
        private Label label6;
        private Label label3;
        private TextBox textBox2;
        private Label label4;
        private Label label2;
        private TextBox textBox1;
        private Label label7;
        private TextBox textBox4;
        private Label label8;
        private Label label11;
        private TextBox textBox6;
        private Label label12;
        private Label label9;
        private TextBox textBox5;
        private Label label10;
        private TextBox textBox8;
        private Label label16;
        private Label label13;
        private TextBox textBox7;
        private Label label14;
        private NumericUpDown nudSw;
        private Label label15;
        private Label label17;
        private NumericUpDown numericUpDown1;
        private Label label19;
        private Label label18;
        private Panel panel1;
        private RadioButton rdoLockSpeed;
        private RadioButton rdoLockPass;
        private Panel pnlLockSpeed;
        private Panel pnlLockPass;
        private Label label20;
        private ComboBox cmbSpeedUnit;
        private NumericUpDown numericUpDown2;
        private Label label22;
        private NumericUpDown numericUpDown3;
        private Label label21;
        private NumericUpDown nudPass;
        private Label label23;
        private Label label24;
        private TextBox txtDataPath;
        private Button btnSelectDataSource;
    }
}
ErrorAnalysis.UI/FrmMain.cs
对比新文件
@@ -0,0 +1,55 @@
using ErrorAnalysis.Repository;
namespace ErrorAnalysis.UI
{
    public partial class FrmMain : Form
    {
        private string? _connectionString;
        public FrmMain()
        {
            InitializeComponent();
        }
        private void btnGetAllPipe_Click(object sender, EventArgs e)
        {
            var modelRepository = new COModelRepository(_connectionString);
            var models = modelRepository.GetCOModels();
        }
        private void rdoMode_CheckedChanged(object sender, EventArgs e)
        {
            if (rdoLockSpeed.Checked)
            {
                pnlLockPass.Visible = false;
                pnlLockSpeed.Visible = true;
            }
            else
            {
                pnlLockPass.Visible = true;
                pnlLockSpeed.Visible = false;
            }
        }
        private void btnSelectDataSource_Click(object sender, EventArgs e)
        {
            var fileDlg = new OpenFileDialog();
            fileDlg.Filter = "Data source|*.db";
            fileDlg.InitialDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Projects");
            fileDlg.FilterIndex = 0;
            var result = fileDlg.ShowDialog();
            if (result == DialogResult.OK)
            {
                txtDataPath.Text = fileDlg.FileName;
                _connectionString = $"Data Source={fileDlg.FileName};";
            }
        }
        private void FrmMain_Load(object sender, EventArgs e)
        {
            cmbSpeedUnit.SelectedIndex = 0;
        }
    }
}
ErrorAnalysis.UI/FrmMain.resx