C3031
2025-12-30 4196f211fedd0fdc2b83ea56bafe97ad14540b94
新增了用户管理界面
已修改8个文件
已添加6个文件
2134 ■■■■■ 文件已修改
LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.Designer.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.resx 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.Designer.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/UserManagementPage/LoadForm.Designer.cs 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/UserManagementPage/LoadForm.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/UserManagementPage/LoadForm.resx 286 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.Designer.cs 401 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.cs 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementForm.Designer.cs 514 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementForm.cs 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementForm.resx 286 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/VisionForm.Designer.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/VisionForm.resx 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.Designer.cs
@@ -105,7 +105,7 @@
            uiComboBoxBrand.Margin = new Padding(4, 5, 4, 5);
            uiComboBoxBrand.MinimumSize = new Size(63, 0);
            uiComboBoxBrand.Name = "uiComboBoxBrand";
            uiComboBoxBrand.Size = new Size(150, 24);
            uiComboBoxBrand.Size = new Size(150, 28);
            uiComboBoxBrand.TabIndex = 11;
            uiComboBoxBrand.SelectedIndexChanged += uiComboBoxBrand_SelectedIndexChanged;
            uiComboBoxBrand.MouseClick += uiComboBoxBrand_MouseClick;
@@ -117,7 +117,7 @@
            uiComboBoxSN.Margin = new Padding(4, 5, 4, 5);
            uiComboBoxSN.MinimumSize = new Size(63, 0);
            uiComboBoxSN.Name = "uiComboBoxSN";
            uiComboBoxSN.Size = new Size(150, 24);
            uiComboBoxSN.Size = new Size(150, 28);
            uiComboBoxSN.TabIndex = 12;
            uiComboBoxSN.MouseClick += uiComboBoxSN_MouseClick;
            // 
@@ -150,7 +150,7 @@
            controlBox1.EnableMaximizeButton = true;
            controlBox1.EnableMinimizeButton = true;
            controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
            controlBox1.Location = new Point(405, 12);
            controlBox1.Location = new Point(407, 18);
            controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
            controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
            controlBox1.Name = "controlBox1";
@@ -171,9 +171,8 @@
            Controls.Add(uiLabel2);
            Controls.Add(uiLabel1);
            Controls.Add(themeForm1);
            ForeColor = SystemColors.ControlText;
            FormBorderStyle = FormBorderStyle.None;
            MaximizeBox = false;
            MinimizeBox = false;
            MinimumSize = new Size(261, 61);
            Name = "CreateCameraForm";
            Text = "创建相机";
LB_SmartVision/Forms/Pages/CameraPage/CreateCameraForm.resx
@@ -120,25 +120,25 @@
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPiSURBVFhH7VZLiBxlEG7d+IjBKKtktqt6d8kybLqqZyfi
        +lgUXcGooKIXxYBKLgZFQVDwgQhBvAVzUOPBi3iJgnoSCcTLKobEma7qHeOiuB7UiBo1PuIjq9HNSPX0
        rDN/zyzbQjztB9+pv3r8/19dVZ63ilUUwBzzmbppGOpRcKlEcLNwcGfMsE0J7ogj//okws2NamlD83Zv
        wLX9z2h63ulz7I8kDNsSxleF8CMl+EEY/lDCv5TxbyU8oQTHlfCIEL5kSbh+CqPpeafVIxgWwieUcU4I
        /lTGZl8SnEgI3pBxPzTbOQ4Gkyi4pxEGFTuE639ZpFfNcIsS1LJT5gN28xdl3Cnj/oVmP7t59Hwl3K0M
        C8owL4zbG9XSOjdOT5hQCB5Rxu97BMqT4BsJ4X6Z9M8x+483XXCuEO5KnyjTCOGvSvjMAQ4G3XhdODAV
        rBWGHUL4Wy5Qb34Sk3/rzLS3xuwtCSV8ShmOu1p7wpjwBRkbO8+Nm6LpeQMxwX3Suk43ULczxpPKKLOR
        f+WO7H1bz4YPpaftYdMiLMQET5rWje/FhJfHhF/kjXJcVIZ3tIJVKzazfc3zBpTwLmU82kPfRWH8Lg79
        67qC76uW1mkEr2Qnyxl1GC8K49uNEMbbtpZEjeBaXVnymR/Y2/UUNQqutn/bFTpcVMZ9ykF5ydDzvEMV
        P4wZtYe+L+2Z4hBvSh3YP6rs71zu9PZNGN7tPLnBqloIXl/Oth+F4MW0eO0qlPA9V9BFwtlZhos6g89M
        T69JGB/Xjt+tIDXtG41qaaMwftZDkBG+TAi2tAuuDaHhq4Thq7x+pYSvNRoiL54IJqwy84L05L8LwwPu
        cLFOJ4Rv5vQFKAQ/xRxc1jeB9F0J9rxfHlzfGdxQD2GrJefaFGI7gfrEyJgwfp4X4GEN/Uk3+H5rtQx7
        c/qCFIIjNSpFrcHBcLDro1U94a52i+1EHPoXC+VvrCiF4cNDlY2ltIsJwXOO4KiEOOUGN9jykc7/Hk4L
        kWDPUkuWKLhBGY79+xH32824wQ3WcsWWENdhAdqktG1qyakVWszw1pKI8GW7ma7IGbQydImNYNdpIRLU
        4nDE73JcJ9gihN9mCexuTzkX2dR7TAh+zDleAa0N1wnvdvuKJ5OTZ9j6JQwL1l57jswMM6OjZ8eEN0q6
        I8KnynjMVjKbF1lbPtlq3ykXW1tVuh39LITP992O5suD65XhWSH4QGlo1P3uYr5cPst0thckjLcp473K
        8LBYiyb/0YTwQdsLNYStlnASwRX9amsJaZcL8WkJcXu/OjjlODwVrI0jvOZgZUPJ/fa/wYrEnQGrOBX4
        B6XRFGacFF+7AAAAAElFTkSuQmCC
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
        wAAADsABataJCQAAA+xJREFUWEftV0loFUkYbvcNFzJi0lWdBEPQruqXKEYdcRgz4AYqeplBwYiXEUVB
        UHAhCEG8iR509OBlmIsOjJ5EBvQSRVHzuvslxjAy8eCG+75GozF+f716L6873fqe2ykffDR59e9/1V8V
        ow99KARtUg72J5aypGNN8xy2yJPWcleylb5gS13HnJdy+KSW6uJx3b8ZA7TKl6PbMPq3SbMsBUcpyf/2
        BP8PDh96kr32BX/rS/4O30789grfO1j/k4LQ6p8POO6XdFgpDNbDSZsn2Bt8u2MpWGdKsCPeBNMm3TZp
        FaUc6/cW20pQEtpsflCllmwxjDbpLKOd9vAZuBPOx5J+86TyMdDbBxsdYLsn+SpUZYQy/imQILLdBIP3
        cxzEU7Dbns3WejXmcNK/NPGHkajabtUiLYO/nyOgXWdRFeUkDmdnWMOg2ACFFwEn8fzfFeaSxlpjIOlT
        EHC0HVm/CstSC13B93sVFaOVszDQpwGuYGtQLipnQDlMyLzH12t2zJ8adH/TbeMbVLYROmmyDvjYRrLK
        aS4Q3Y/gtWjFALtg6KSf4NW02Uj3HwSPzOuw9iAk24sI/p5rm3OV0wyOo+++ww7pzCIViVjvAk+02GyC
        VlWnpUmw2Qggn+AV0eZ/A61oEtYsOttRwjlE5vy4L61KrabQmjBtV3I/JPtRUptcmy9UBuiM+tLc+bHs
        aQ1Rn8rNnEC7Gpvr8KcqF0XoHVCbl0qB8p2OEspS8OZmySZrvwqNtbUDMRm3Yj9kj1uB9NXcwLkfjwyu
        RAhoshuYcHMyGy4DT5T+jKrcjNbJh+yW75QIw62yqhDAvUghwV/Cybrw5UKTDn08GqmTJ9GCx660pscG
        oPoq2MHzlUWjtN8skjZbRsGFdQpiJoBkVVkFnF3tLcCv+7ZZo31mcYZGLY5RL/kCiQrcaRLFTvrikOxc
        YJF2PeZ5ZsTmAkNkCtaiW1YAkcTF1sT4YjXFEM3ekMADz+YztM8AULqlqE5nSL5wor3Zkew51nxU4WnP
        Ij9DlVGLIWCtDhV6FzBWIJH9a3pNaZOGQRsNT6tjWSHB/6LK6OUA/ETJVER/O9dgwcQ7w7XLTG0yjSTO
        Onp7Ny3A92VuuTD0rbcFbXsUMJonaQwnBV8Rniu4y2sGYbEe5emA8cORV6ZGY3n5UNycC9AKvBHZZRh+
        iqxoX9BlRWMZozvLLiSEV5V6HT2Bjz9iX0ftaAWE9sDoBV+UlOufY9FeWTmE5OhdgLH8Kxyvhv5GON3q
        C3NzSvD19C70MTco4JTDZsbtrSzUlLP5DnBV3D745riOp5nr8F/OJcYV65++P2iTfNV/MPoQCcP4AKXR
        FGYxo/VGAAAAAElFTkSuQmCC
</value>
  </data>
</root>
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.Designer.cs
@@ -561,6 +561,7 @@
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel1.Size = new Size(368, 39);
            tableLayoutPanel1.TabIndex = 4;
            tableLayoutPanel1.Paint += tableLayoutPanel1_Paint;
            // 
            // textBox1
            // 
LB_SmartVision/Forms/Pages/MotionControlPage/MotionControlForm.cs
@@ -365,5 +365,10 @@
                //LogInfo?.Invoke($"X位置已更新为: {xPosition}", LogInfoType.INFO);
            }
        }
        private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
        {
        }
    }
}
LB_SmartVision/Forms/Pages/UserManagementPage/LoadForm.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,168 @@
namespace LB_SmartVision.Forms.Pages.UserManagementPage
{
    partial class LoadForm
    {
        /// <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()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoadForm));
            themeForm1 = new ReaLTaiizor.Forms.ThemeForm();
            uibtnCancel = new Button();
            uibtnLoad = new Button();
            uilabelPassWord = new Label();
            uilabelUserName = new Label();
            uitextBoxPassWord = new TextBox();
            uitextBoxUserName = new TextBox();
            controlBox1 = new ReaLTaiizor.Controls.ControlBox();
            themeForm1.SuspendLayout();
            SuspendLayout();
            //
            // themeForm1
            //
            themeForm1.BackColor = Color.FromArgb(32, 41, 50);
            themeForm1.Controls.Add(uibtnCancel);
            themeForm1.Controls.Add(uibtnLoad);
            themeForm1.Controls.Add(uilabelPassWord);
            themeForm1.Controls.Add(uilabelUserName);
            themeForm1.Controls.Add(uitextBoxPassWord);
            themeForm1.Controls.Add(uitextBoxUserName);
            themeForm1.Controls.Add(controlBox1);
            themeForm1.Font = new Font("Microsoft Sans Serif", 9F);
            themeForm1.ForeColor = SystemColors.Control;
            themeForm1.Image = (Image)resources.GetObject("themeForm1.Image");
            themeForm1.Location = new Point(0, 0);
            themeForm1.Name = "themeForm1";
            themeForm1.Padding = new Padding(10, 70, 10, 9);
            themeForm1.RoundCorners = true;
            themeForm1.Sizable = true;
            themeForm1.Size = new Size(507, 309);
            themeForm1.SmartBounds = true;
            themeForm1.StartPosition = FormStartPosition.WindowsDefaultLocation;
            themeForm1.TabIndex = 0;
            themeForm1.Text = "登录界面";
            //
            // uibtnCancel
            //
            uibtnCancel.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 0);
            uibtnCancel.ForeColor = SystemColors.Control;
            uibtnCancel.Location = new Point(302, 234);
            uibtnCancel.Name = "uibtnCancel";
            uibtnCancel.Size = new Size(100, 35);
            uibtnCancel.TabIndex = 6;
            uibtnCancel.Text = "取消";
            uibtnCancel.UseVisualStyleBackColor = false;
            //
            // uibtnLoad
            //
            uibtnLoad.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 0);
            uibtnLoad.ForeColor = SystemColors.Control;
            uibtnLoad.Location = new Point(110, 234);
            uibtnLoad.Name = "uibtnLoad";
            uibtnLoad.Size = new Size(100, 35);
            uibtnLoad.TabIndex = 5;
            uibtnLoad.Text = "登录";
            uibtnLoad.UseVisualStyleBackColor = false;
            //
            // uilabelPassWord
            //
            uilabelPassWord.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 0);
            uilabelPassWord.ForeColor = SystemColors.Control;
            uilabelPassWord.Location = new Point(120, 163);
            uilabelPassWord.Name = "uilabelPassWord";
            uilabelPassWord.Size = new Size(100, 23);
            uilabelPassWord.TabIndex = 4;
            uilabelPassWord.Text = "密码";
            //
            // uilabelUserName
            //
            uilabelUserName.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 0);
            uilabelUserName.ForeColor = SystemColors.Control;
            uilabelUserName.Location = new Point(120, 97);
            uilabelUserName.Name = "uilabelUserName";
            uilabelUserName.Size = new Size(100, 23);
            uilabelUserName.TabIndex = 3;
            uilabelUserName.Text = "用户名";
            //
            // uitextBoxPassWord
            //
            uitextBoxPassWord.Location = new Point(227, 157);
            uitextBoxPassWord.Name = "uitextBoxPassWord";
            uitextBoxPassWord.Size = new Size(150, 24);
            uitextBoxPassWord.TabIndex = 2;
            //
            // uitextBoxUserName
            //
            uitextBoxUserName.Location = new Point(227, 94);
            uitextBoxUserName.Name = "uitextBoxUserName";
            uitextBoxUserName.Size = new Size(150, 24);
            uitextBoxUserName.TabIndex = 1;
            //
            // controlBox1
            //
            controlBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            controlBox1.BackColor = Color.FromArgb(32, 34, 37);
            controlBox1.CloseHoverColor = Color.FromArgb(230, 17, 35);
            controlBox1.DefaultLocation = true;
            controlBox1.EnableHoverHighlight = true;
            controlBox1.EnableMaximizeButton = true;
            controlBox1.EnableMinimizeButton = true;
            controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
            controlBox1.Location = new Point(407, 18);
            controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
            controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
            controlBox1.Name = "controlBox1";
            controlBox1.Size = new Size(90, 25);
            controlBox1.TabIndex = 0;
            controlBox1.Text = "controlBox1";
            //
            // LoadForm
            //
            AutoScaleMode = AutoScaleMode.None;
            ClientSize = new Size(507, 309);
            ControlBox = false;
            Controls.Add(themeForm1);
            FormBorderStyle = FormBorderStyle.None;
            MinimumSize = new Size(261, 61);
            Name = "LoadForm";
            Text = "登录界面";
            TransparencyKey = Color.Fuchsia;
            themeForm1.ResumeLayout(false);
            themeForm1.PerformLayout();
            ResumeLayout(false);
        }
        #endregion
        private ReaLTaiizor.Forms.ThemeForm themeForm1;
        private ReaLTaiizor.Controls.ControlBox controlBox1;
        private Label uilabelPassWord;
        private Label uilabelUserName;
        private TextBox uitextBoxPassWord;
        private TextBox uitextBoxUserName;
        private Button uibtnCancel;
        private Button uibtnLoad;
    }
}
LB_SmartVision/Forms/Pages/UserManagementPage/LoadForm.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
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;
namespace LB_SmartVision.Forms.Pages.UserManagementPage
{
    public partial class LoadForm : Form
    {
        public LoadForm()
        {
            InitializeComponent();
        }
    }
}
LB_SmartVision/Forms/Pages/UserManagementPage/LoadForm.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,286 @@
<?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>
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        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
        OfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMc
        eppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49
        zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m
        0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2
        AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOn
        OfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMc
        eppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49
        zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m
        0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2
        AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOn
        OfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMc
        eppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49
        zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m
        0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2
        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
        Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqz
        AThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxG
        T3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMB
        OEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZP
        cziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4
        Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9z
        OIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThG
        T3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4
        hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZP
        c+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziH
        HHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z
        6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIcc
        epqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po
        0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6
        mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jR
        PEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mvPB7/78j6T93i9+Lu23fuYz
        aV/9wsdpv/r5j9J+52c/m/brP/3pObQBOEZPc+hpDj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R
        0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3N
        oUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6mkNPc+jRPLYBOEZPc+hpDj3Noac59Gge2wAco6c5
        9DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP
        5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6mkNPc+jRPLYBOEZPc+hp
        Dj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1j
        G4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6
        mkNPc+jRPLYBOEZPc+hpDj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYA
        x+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSH
        nubQo3lsA3CMnubQ0xx6mkNPc+jRPLYBOEZPc+hpDj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R
        0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3N
        oUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6mkNPc+jRPLYBOEZPc+hpDj3Noac59Gge2wAco6c5
        9DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP
        5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6mkNPc+jRPLYBOEZPc+hp
        Dj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1j
        G4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6
        mkNPc+jRPLYBOEZPc+hpDj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYA
        x+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSH
        nubQo3nqpz/9/zfth9fZ0q70AAAAAElFTkSuQmCC
</value>
  </data>
</root>
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.Designer.cs
@@ -1,19 +1,22 @@

using ReaLTaiizor.Controls;
using Sunny.UI;
using System.Drawing.Printing;
using System.Windows.Forms;
namespace LB_SmartVision.Forms.Pages.UserManagementPage
{
    partial class UserManagementEditPage
    {
        /// <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>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
@@ -23,130 +26,356 @@
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code
        #region ç»„件设计器生成的代码
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// è®¾è®¡å™¨æ”¯æŒæ‰€éœ€çš„æ–¹æ³• - ä¸è¦ä¿®æ”¹
        /// ä½¿ç”¨ä»£ç ç¼–辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            btn_Add = new HopeButton();
            btn_Clear = new LostButton();
            uiFlowLayoutPanel1 = new FlowLayoutPanel();
            grpSetting = new ParrotGroupBox();
            tableLayoutPanel1 = new TableLayoutPanel();
            tableLayoutPanel2 = new TableLayoutPanel();
            tableLayoutPanel3 = new TableLayoutPanel();
            textBoxEmployeeID = new TextBox();
            labelEmployeeID = new Label();
            textBoxName = new TextBox();
            labelName = new Label();
            labelPermission = new Label();
            textBoxPassword = new TextBox();
            labelPassword = new Label();
            labelUsername = new Label();
            textBoxUsername = new TextBox();
            comboBoxPermission = new ComboBox();
            dataGridViewUM = new DataGridView();
            tableLayoutPanel4 = new TableLayoutPanel();
            btnDel = new HopeButton();
            btnEdit = new HopeButton();
            btnFind = new HopeButton();
            btnAdd = new ForeverButton();
            grpSetting.SuspendLayout();
            tableLayoutPanel1.SuspendLayout();
            tableLayoutPanel2.SuspendLayout();
            tableLayoutPanel3.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)dataGridViewUM).BeginInit();
            tableLayoutPanel4.SuspendLayout();
            SuspendLayout();
            // 
            // btn_Add
            // grpSetting
            // 
            btn_Add.BorderColor = Color.FromArgb(220, 223, 230);
            btn_Add.ButtonType = ReaLTaiizor.Util.HopeButtonType.Primary;
            btn_Add.Cursor = Cursors.Hand;
            btn_Add.DangerColor = Color.FromArgb(245, 108, 108);
            btn_Add.DefaultColor = Color.FromArgb(255, 255, 255);
            btn_Add.Dock = DockStyle.Fill;
            btn_Add.Font = new Font("宋体", 12F);
            btn_Add.HoverTextColor = Color.FromArgb(48, 49, 51);
            btn_Add.InfoColor = Color.FromArgb(144, 147, 153);
            btn_Add.Location = new Point(503, 3);
            btn_Add.MinimumSize = new Size(1, 1);
            btn_Add.Name = "btn_Add";
            btn_Add.PrimaryColor = Color.FromArgb(64, 158, 255);
            btn_Add.Size = new Size(95, 38);
            btn_Add.SuccessColor = Color.FromArgb(103, 194, 58);
            btn_Add.TabIndex = 11;
            btn_Add.Text = "增加";
            btn_Add.TextColor = Color.White;
            btn_Add.WarningColor = Color.FromArgb(230, 162, 60);
            //
            // btn_Clear
            //
            btn_Clear.BackColor = Color.FromArgb(45, 45, 48);
            btn_Clear.Cursor = Cursors.Hand;
            btn_Clear.Dock = DockStyle.Fill;
            btn_Clear.Font = new Font("宋体", 12F);
            btn_Clear.ForeColor = Color.White;
            btn_Clear.HoverColor = Color.DodgerBlue;
            btn_Clear.Image = null;
            btn_Clear.Location = new Point(403, 3);
            btn_Clear.MinimumSize = new Size(1, 1);
            btn_Clear.Name = "btn_Clear";
            btn_Clear.Size = new Size(94, 38);
            btn_Clear.TabIndex = 12;
            btn_Clear.Text = "清除";
            //
            // uiFlowLayoutPanel1
            //
            uiFlowLayoutPanel1.BackColor = Color.FromArgb(32, 41, 50);
            uiFlowLayoutPanel1.Dock = DockStyle.Fill;
            uiFlowLayoutPanel1.Font = new Font("宋体", 12F);
            uiFlowLayoutPanel1.ForeColor = SystemColors.Control;
            uiFlowLayoutPanel1.Location = new Point(4, 5);
            uiFlowLayoutPanel1.Margin = new Padding(4, 5, 4, 5);
            uiFlowLayoutPanel1.MinimumSize = new Size(1, 1);
            uiFlowLayoutPanel1.Name = "uiFlowLayoutPanel1";
            uiFlowLayoutPanel1.Padding = new Padding(2);
            uiFlowLayoutPanel1.Size = new Size(599, 293);
            uiFlowLayoutPanel1.TabIndex = 10;
            uiFlowLayoutPanel1.Text = "`";
            grpSetting.BorderColor = Color.DodgerBlue;
            grpSetting.BorderWidth = 1;
            grpSetting.Controls.Add(tableLayoutPanel1);
            grpSetting.Dock = DockStyle.Fill;
            grpSetting.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            grpSetting.Location = new Point(0, 0);
            grpSetting.Name = "grpSetting";
            grpSetting.ShowText = true;
            grpSetting.Size = new Size(866, 580);
            grpSetting.TabIndex = 6;
            grpSetting.TabStop = false;
            grpSetting.Text = "用户管理设置";
            grpSetting.TextColor = Color.DodgerBlue;
            // 
            // tableLayoutPanel1
            // 
            tableLayoutPanel1.ColumnCount = 1;
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 20F));
            tableLayoutPanel1.Controls.Add(uiFlowLayoutPanel1, 0, 0);
            tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 1);
            tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 0);
            tableLayoutPanel1.Controls.Add(tableLayoutPanel4, 0, 1);
            tableLayoutPanel1.Dock = DockStyle.Fill;
            tableLayoutPanel1.Location = new Point(0, 0);
            tableLayoutPanel1.Location = new Point(3, 26);
            tableLayoutPanel1.Name = "tableLayoutPanel1";
            tableLayoutPanel1.RowCount = 2;
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 50F));
            tableLayoutPanel1.Size = new Size(607, 353);
            tableLayoutPanel1.TabIndex = 13;
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
            tableLayoutPanel1.Size = new Size(860, 551);
            tableLayoutPanel1.TabIndex = 1;
            // 
            // tableLayoutPanel2
            // 
            tableLayoutPanel2.ColumnCount = 6;
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 16.666666F));
            tableLayoutPanel2.Controls.Add(btn_Add, 5, 0);
            tableLayoutPanel2.Controls.Add(btn_Clear, 4, 0);
            tableLayoutPanel2.ColumnCount = 2;
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60F));
            tableLayoutPanel2.Controls.Add(tableLayoutPanel3, 0, 0);
            tableLayoutPanel2.Controls.Add(dataGridViewUM, 1, 0);
            tableLayoutPanel2.Dock = DockStyle.Fill;
            tableLayoutPanel2.Location = new Point(3, 306);
            tableLayoutPanel2.Location = new Point(3, 3);
            tableLayoutPanel2.Name = "tableLayoutPanel2";
            tableLayoutPanel2.RowCount = 1;
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel2.Size = new Size(601, 44);
            tableLayoutPanel2.TabIndex = 11;
            tableLayoutPanel2.Size = new Size(854, 500);
            tableLayoutPanel2.TabIndex = 0;
            //
            // tableLayoutPanel3
            //
            tableLayoutPanel3.ColumnCount = 2;
            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100F));
            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F));
            tableLayoutPanel3.Controls.Add(textBoxEmployeeID, 1, 4);
            tableLayoutPanel3.Controls.Add(labelEmployeeID, 0, 4);
            tableLayoutPanel3.Controls.Add(textBoxName, 1, 3);
            tableLayoutPanel3.Controls.Add(labelName, 0, 3);
            tableLayoutPanel3.Controls.Add(labelPermission, 0, 2);
            tableLayoutPanel3.Controls.Add(textBoxPassword, 1, 1);
            tableLayoutPanel3.Controls.Add(labelPassword, 0, 1);
            tableLayoutPanel3.Controls.Add(labelUsername, 0, 0);
            tableLayoutPanel3.Controls.Add(textBoxUsername, 1, 0);
            tableLayoutPanel3.Controls.Add(comboBoxPermission, 1, 2);
            tableLayoutPanel3.Location = new Point(3, 3);
            tableLayoutPanel3.Name = "tableLayoutPanel3";
            tableLayoutPanel3.RowCount = 5;
            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 20F));
            tableLayoutPanel3.Size = new Size(333, 225);
            tableLayoutPanel3.TabIndex = 0;
            //
            // textBoxEmployeeID
            //
            textBoxEmployeeID.Location = new Point(107, 187);
            textBoxEmployeeID.Margin = new Padding(7);
            textBoxEmployeeID.Name = "textBoxEmployeeID";
            textBoxEmployeeID.Size = new Size(219, 30);
            textBoxEmployeeID.TabIndex = 9;
            //
            // labelEmployeeID
            //
            labelEmployeeID.AutoSize = true;
            labelEmployeeID.Dock = DockStyle.Fill;
            labelEmployeeID.ForeColor = Color.White;
            labelEmployeeID.Location = new Point(3, 180);
            labelEmployeeID.Name = "labelEmployeeID";
            labelEmployeeID.Size = new Size(94, 45);
            labelEmployeeID.TabIndex = 8;
            labelEmployeeID.Text = "员工编号";
            labelEmployeeID.TextAlign = ContentAlignment.MiddleLeft;
            //
            // textBoxName
            //
            textBoxName.Location = new Point(107, 142);
            textBoxName.Margin = new Padding(7);
            textBoxName.Name = "textBoxName";
            textBoxName.Size = new Size(219, 30);
            textBoxName.TabIndex = 7;
            //
            // labelName
            //
            labelName.AutoSize = true;
            labelName.Dock = DockStyle.Fill;
            labelName.ForeColor = Color.White;
            labelName.Location = new Point(3, 135);
            labelName.Name = "labelName";
            labelName.Size = new Size(94, 45);
            labelName.TabIndex = 6;
            labelName.Text = "姓名";
            labelName.TextAlign = ContentAlignment.MiddleLeft;
            //
            // labelPermission
            //
            labelPermission.AutoSize = true;
            labelPermission.Dock = DockStyle.Fill;
            labelPermission.ForeColor = Color.White;
            labelPermission.Location = new Point(3, 90);
            labelPermission.Name = "labelPermission";
            labelPermission.Size = new Size(94, 45);
            labelPermission.TabIndex = 4;
            labelPermission.Text = "权限";
            labelPermission.TextAlign = ContentAlignment.MiddleLeft;
            //
            // textBoxPassword
            //
            textBoxPassword.Location = new Point(107, 52);
            textBoxPassword.Margin = new Padding(7);
            textBoxPassword.Name = "textBoxPassword";
            textBoxPassword.Size = new Size(219, 30);
            textBoxPassword.TabIndex = 3;
            //
            // labelPassword
            //
            labelPassword.AutoSize = true;
            labelPassword.Dock = DockStyle.Fill;
            labelPassword.ForeColor = Color.White;
            labelPassword.Location = new Point(3, 45);
            labelPassword.Name = "labelPassword";
            labelPassword.Size = new Size(94, 45);
            labelPassword.TabIndex = 2;
            labelPassword.Text = "密码";
            labelPassword.TextAlign = ContentAlignment.MiddleLeft;
            //
            // labelUsername
            //
            labelUsername.AutoSize = true;
            labelUsername.Dock = DockStyle.Fill;
            labelUsername.ForeColor = Color.White;
            labelUsername.Location = new Point(3, 0);
            labelUsername.Name = "labelUsername";
            labelUsername.Size = new Size(94, 45);
            labelUsername.TabIndex = 0;
            labelUsername.Text = "用户名";
            labelUsername.TextAlign = ContentAlignment.MiddleLeft;
            //
            // textBoxUsername
            //
            textBoxUsername.Location = new Point(107, 7);
            textBoxUsername.Margin = new Padding(7);
            textBoxUsername.Name = "textBoxUsername";
            textBoxUsername.Size = new Size(219, 30);
            textBoxUsername.TabIndex = 1;
            //
            // comboBoxPermission
            //
            comboBoxPermission.DropDownStyle = ComboBoxStyle.DropDownList;
            comboBoxPermission.FormattingEnabled = true;
            comboBoxPermission.Location = new Point(107, 97);
            comboBoxPermission.Margin = new Padding(7);
            comboBoxPermission.Name = "comboBoxPermission";
            comboBoxPermission.Size = new Size(219, 28);
            comboBoxPermission.TabIndex = 5;
            //
            // dataGridViewUM
            //
            dataGridViewUM.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            dataGridViewUM.Dock = DockStyle.Fill;
            dataGridViewUM.Location = new Point(344, 3);
            dataGridViewUM.Name = "dataGridViewUM";
            dataGridViewUM.RowHeadersWidth = 51;
            dataGridViewUM.Size = new Size(507, 494);
            dataGridViewUM.TabIndex = 1;
            //
            // tableLayoutPanel4
            //
            tableLayoutPanel4.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            tableLayoutPanel4.ColumnCount = 4;
            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
            tableLayoutPanel4.Controls.Add(btnEdit, 1, 0);
            tableLayoutPanel4.Controls.Add(btnFind, 0, 0);
            tableLayoutPanel4.Controls.Add(btnDel, 3, 0);
            tableLayoutPanel4.Controls.Add(btnAdd, 2, 0);
            tableLayoutPanel4.Location = new Point(457, 509);
            tableLayoutPanel4.Name = "tableLayoutPanel4";
            tableLayoutPanel4.RowCount = 1;
            tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel4.Size = new Size(400, 39);
            tableLayoutPanel4.TabIndex = 1;
            //
            // btnDel
            //
            btnDel.BorderColor = Color.FromArgb(220, 223, 230);
            btnDel.ButtonType = ReaLTaiizor.Util.HopeButtonType.Primary;
            btnDel.DangerColor = Color.FromArgb(245, 108, 108);
            btnDel.DefaultColor = Color.FromArgb(255, 255, 255);
            btnDel.Font = new Font("Segoe UI", 12F);
            btnDel.HoverTextColor = Color.FromArgb(48, 49, 51);
            btnDel.InfoColor = Color.FromArgb(144, 147, 153);
            btnDel.Location = new Point(303, 3);
            btnDel.Name = "btnDel";
            btnDel.PrimaryColor = Color.FromArgb(64, 158, 255);
            btnDel.Size = new Size(94, 33);
            btnDel.SuccessColor = Color.FromArgb(103, 194, 58);
            btnDel.TabIndex = 3;
            btnDel.Text = "删除";
            btnDel.TextColor = Color.White;
            btnDel.WarningColor = Color.FromArgb(230, 162, 60);
            btnDel.Click += btnDel_Click;
            //
            // btnEdit
            //
            btnEdit.BorderColor = Color.FromArgb(220, 223, 230);
            btnEdit.ButtonType = ReaLTaiizor.Util.HopeButtonType.Primary;
            btnEdit.DangerColor = Color.FromArgb(245, 108, 108);
            btnEdit.DefaultColor = Color.FromArgb(255, 255, 255);
            btnEdit.Font = new Font("Segoe UI", 12F);
            btnEdit.HoverTextColor = Color.FromArgb(48, 49, 51);
            btnEdit.InfoColor = Color.FromArgb(144, 147, 153);
            btnEdit.Location = new Point(103, 3);
            btnEdit.Name = "btnEdit";
            btnEdit.PrimaryColor = Color.FromArgb(64, 158, 255);
            btnEdit.Size = new Size(94, 33);
            btnEdit.SuccessColor = Color.FromArgb(103, 194, 58);
            btnEdit.TabIndex = 2;
            btnEdit.Text = "修改";
            btnEdit.TextColor = Color.White;
            btnEdit.WarningColor = Color.FromArgb(230, 162, 60);
            //
            // btnFind
            //
            btnFind.BorderColor = Color.FromArgb(220, 223, 230);
            btnFind.ButtonType = ReaLTaiizor.Util.HopeButtonType.Primary;
            btnFind.DangerColor = Color.FromArgb(245, 108, 108);
            btnFind.DefaultColor = Color.FromArgb(255, 255, 255);
            btnFind.Font = new Font("Segoe UI", 12F);
            btnFind.HoverTextColor = Color.FromArgb(48, 49, 51);
            btnFind.InfoColor = Color.FromArgb(144, 147, 153);
            btnFind.Location = new Point(3, 3);
            btnFind.Name = "btnFind";
            btnFind.PrimaryColor = Color.FromArgb(64, 158, 255);
            btnFind.Size = new Size(94, 33);
            btnFind.SuccessColor = Color.FromArgb(103, 194, 58);
            btnFind.TabIndex = 1;
            btnFind.Text = "查询";
            btnFind.TextColor = Color.White;
            btnFind.WarningColor = Color.FromArgb(230, 162, 60);
            //
            // btnAdd
            //
            btnAdd.BackColor = Color.Transparent;
            btnAdd.BaseColor = Color.FromArgb(35, 168, 109);
            btnAdd.Font = new Font("Segoe UI", 12F);
            btnAdd.Location = new Point(203, 3);
            btnAdd.Name = "btnAdd";
            btnAdd.Rounded = false;
            btnAdd.Size = new Size(94, 33);
            btnAdd.TabIndex = 4;
            btnAdd.Text = "添加";
            btnAdd.TextColor = Color.FromArgb(243, 243, 243);
            btnAdd.Click += btnAdd_Click;
            // 
            // UserManagementEditPage
            // 
            BackColor = Color.FromArgb(32, 41, 50);
            Controls.Add(tableLayoutPanel1);
            ForeColor = SystemColors.Control;
            Controls.Add(grpSetting);
            Name = "UserManagementEditPage";
            Size = new Size(607, 353);
            Paint += MESEditPage_Paint;
            Size = new Size(866, 580);
            grpSetting.ResumeLayout(false);
            grpSetting.PerformLayout();
            tableLayoutPanel1.ResumeLayout(false);
            tableLayoutPanel2.ResumeLayout(false);
            tableLayoutPanel3.ResumeLayout(false);
            tableLayoutPanel3.PerformLayout();
            ((System.ComponentModel.ISupportInitialize)dataGridViewUM).EndInit();
            tableLayoutPanel4.ResumeLayout(false);
            ResumeLayout(false);
        }
        #endregion
        private ReaLTaiizor.Controls.HopeButton btn_Add;
        private ReaLTaiizor.Controls.LostButton btn_Clear;
        private FlowLayoutPanel uiFlowLayoutPanel1;
        private ParrotGroupBox grpSetting;
        private TableLayoutPanel tableLayoutPanel1;
        private TableLayoutPanel tableLayoutPanel2;
        private TableLayoutPanel tableLayoutPanel3;
        private Label labelUsername;
        private TextBox textBoxUsername;
        private TextBox textBoxEmployeeID;
        private Label labelEmployeeID;
        private TextBox textBoxName;
        private Label labelName;
        private Label labelPermission;
        private TextBox textBoxPassword;
        private Label labelPassword;
        private ComboBox comboBoxPermission;
        private DataGridView dataGridViewUM;
        private TableLayoutPanel tableLayoutPanel4;
        private HopeButton btnDel;
        private HopeButton btnEdit;
        private HopeButton btnFind;
        private ForeverButton btnAdd;
    }
}
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementEditPage.cs
@@ -1,30 +1,153 @@
using LB_VisionControl;
using OpenCvSharp.Flann;
using System;
using LB_SmartVision.Forms.Pages.ProcessPage;
using LB_SmartVision.ProcessRun;
using LB_VisionControl;
using LB_VisionProcesses;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using System.Collections.Concurrent;
using System.Data;
using System.Text;
using VisionControl.Forms;
using LB_SmartVision.Forms.Pages.SettingPage;
using LB_SmartVisionCommon;
using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;
using LB_SmartVision.Forms.Pages.CameraPage;
using System.Security.Principal;
using System.Windows.Forms;
using System.Xml.Linq;
namespace LB_SmartVision.Forms.Pages.UserManagementPage
{
    public partial class UserManagementEditPage : UserControl
    {
        public Action<string, LogInfoType> LogInfo;
        RunSettingPage RunSettingPage = new RunSettingPage();
        LayoutPage LayoutPage = new LayoutPage();
        CsvPage CsvPage = new CsvPage();
        public UserManagementEditPage()
        {
            InitializeComponent();
            Name = "UserManagementEditPage";
            Text = "用户管理设置";
            InitializeComponent();
            InitializeDataGridView();
            InitializeComboBox();
        }
        private void MESEditPage_Paint(object sender, PaintEventArgs e)
        private void InitializeDataGridView()
        {
            uiFlowLayoutPanel1.Controls.Clear();
            // è®¾ç½®DataGridView列宽
            dataGridViewUM.ColumnCount = 5;
            int totalWidth = dataGridViewUM.ClientSize.Width;
            int columnCount = dataGridViewUM.ColumnCount;
            int columnWidth = totalWidth / columnCount;
            // è®¾ç½®æœ€å°å®½åº¦
            int minWidth = 100; // æœ€å°å®½åº¦
            if (columnWidth < minWidth)
            {
                columnWidth = minWidth;
        }
            for (int i = 0; i < columnCount; i++)
            {
                dataGridViewUM.Columns[i].Width = columnWidth;
            }
            // è®¾ç½®åˆ—标题
            dataGridViewUM.Columns[0].Name = "用户名";
            dataGridViewUM.Columns[1].Name = "密码";
            dataGridViewUM.Columns[2].Name = "姓名";
            dataGridViewUM.Columns[3].Name = "工号";
            dataGridViewUM.Columns[4].Name = "权限";
            dataGridViewUM.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            // ç¦æ­¢ç¼–辑单元格(可选)
            dataGridViewUM.ReadOnly = true;
            // å…è®¸å¤šè¡Œé€‰æ‹©ï¼ˆå¯é€‰ï¼‰
            dataGridViewUM.MultiSelect = false;
            // æ˜¾ç¤ºè¡Œæ ‡é¢˜ï¼ˆå¯é€‰ï¼‰
            dataGridViewUM.RowHeadersVisible = true;
        }
        private void InitializeComboBox()
        {
            // æ·»åŠ æƒé™é€‰é¡¹
            comboBoxPermission.Items.Add("管理员");
            comboBoxPermission.Items.Add("操作员");
            // è®¾ç½®é»˜è®¤é€‰æ‹©é¡¹
            comboBoxPermission.SelectedIndex = 1;
        }
        private void ClearInputFields()
        {
            textBoxUsername.Clear();
            textBoxPassword.Clear();
            textBoxName.Clear();
            textBoxEmployeeID.Clear();
            comboBoxPermission.SelectedIndex = 1;
            textBoxUsername.Focus(); // å°†ç„¦ç‚¹è®¾ç½®å›žç”¨æˆ·åè¾“入框
        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            // éªŒè¯è¾“å…¥
            if (string.IsNullOrWhiteSpace(textBoxUsername.Text) ||
                string.IsNullOrWhiteSpace(textBoxPassword.Text) ||
                string.IsNullOrWhiteSpace(textBoxName.Text) ||
                string.IsNullOrWhiteSpace(textBoxEmployeeID.Text))
            {
                MessageBox.Show("请填写所有必填字段!", "提示",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            // åˆ›å»ºæ–°è¡Œæ•°æ®
            string[] row = new string[]
            {
                textBoxUsername.Text,
                textBoxPassword.Text, // å®žé™…应用中密码应该加密
                textBoxName.Text,
                textBoxEmployeeID.Text,
                comboBoxPermission.SelectedItem.ToString()
            };
            // è®¾ç½®æ•´ä¸ªDataGridView的默认字体和颜色
            dataGridViewUM.DefaultCellStyle.Font = new Font("宋体", 12);
            dataGridViewUM.DefaultCellStyle.ForeColor = Color.Black;  // å­—体颜色
            dataGridViewUM.DefaultCellStyle.BackColor = Color.White;   // èƒŒæ™¯é¢œè‰²
            // æ·»åŠ æ–°è¡Œåˆ°DataGridView
            dataGridViewUM.Rows.Add(row);
            // æ¸…空输入框
            ClearInputFields();
        }
        private void btnDel_Click(object sender, EventArgs e)
        {
            if (dataGridViewUM.SelectedRows.Count > 0)
            {
                // ç¡®è®¤åˆ é™¤
                DialogResult result = MessageBox.Show("确定要删除选中的行吗?",
                    "确认删除", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    foreach (DataGridViewRow row in dataGridViewUM.SelectedRows)
                    {
                        dataGridViewUM.Rows.Remove(row);
                    }
                }
            }
            else
            {
                MessageBox.Show("请先选择要删除的行!", "提示",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
}
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementForm.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,514 @@
using LB_SmartVision.Forms.Pages.MotionControlPage;
using LB_SmartVision.Properties;
//using ReaLTaiizor.Controls;
using ReaLTaiizor.Forms;
using Sunny.UI;
using System.Windows.Forms;
namespace LB_SmartVision.Forms.Pages.UserManagementPage
{
    partial class UserManagementForm
    {
        /// <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()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(UserManagementForm));
            uiGroupBoxUserManagement = new GroupBox();
            tableLayoutPanel1 = new TableLayoutPanel();
            tableLayoutPanel2 = new TableLayoutPanel();
            tableLayoutPanel8 = new TableLayoutPanel();
            textBoxEmployeeID = new TextBox();
            label5 = new Label();
            tableLayoutPanel7 = new TableLayoutPanel();
            textBoxName = new TextBox();
            label4 = new Label();
            tableLayoutPanel6 = new TableLayoutPanel();
            label3 = new Label();
            comboBoxPermission = new ComboBox();
            tableLayoutPanel5 = new TableLayoutPanel();
            textBoxPassword = new TextBox();
            label2 = new Label();
            tableLayoutPanel4 = new TableLayoutPanel();
            label1 = new Label();
            textBoxUsername = new TextBox();
            tableLayoutPanel9 = new TableLayoutPanel();
            buttonAddUser = new Button();
            buttonDelUser = new Button();
            tableLayoutPanel10 = new TableLayoutPanel();
            button4 = new Button();
            button3 = new Button();
            tableLayoutPanel3 = new TableLayoutPanel();
            dataGridView1 = new DataGridView();
            themeForm1 = new ThemeForm();
            controlBox1 = new ReaLTaiizor.Controls.ControlBox();
            panel1 = new Panel();
            uiGroupBoxUserManagement.SuspendLayout();
            tableLayoutPanel1.SuspendLayout();
            tableLayoutPanel2.SuspendLayout();
            tableLayoutPanel8.SuspendLayout();
            tableLayoutPanel7.SuspendLayout();
            tableLayoutPanel6.SuspendLayout();
            tableLayoutPanel5.SuspendLayout();
            tableLayoutPanel4.SuspendLayout();
            tableLayoutPanel9.SuspendLayout();
            tableLayoutPanel10.SuspendLayout();
            tableLayoutPanel3.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)dataGridView1).BeginInit();
            themeForm1.SuspendLayout();
            panel1.SuspendLayout();
            SuspendLayout();
            //
            // uiGroupBoxUserManagement
            //
            uiGroupBoxUserManagement.Controls.Add(tableLayoutPanel1);
            uiGroupBoxUserManagement.Font = new Font("宋体", 12F);
            uiGroupBoxUserManagement.ForeColor = SystemColors.Control;
            uiGroupBoxUserManagement.Location = new Point(4, 5);
            uiGroupBoxUserManagement.Margin = new Padding(4, 5, 4, 5);
            uiGroupBoxUserManagement.MinimumSize = new Size(1, 1);
            uiGroupBoxUserManagement.Name = "uiGroupBoxUserManagement";
            uiGroupBoxUserManagement.Padding = new Padding(0, 32, 0, 0);
            uiGroupBoxUserManagement.Size = new Size(892, 689);
            uiGroupBoxUserManagement.TabIndex = 18;
            uiGroupBoxUserManagement.TabStop = false;
            uiGroupBoxUserManagement.Text = "用户管理设置";
            //
            // tableLayoutPanel1
            //
            tableLayoutPanel1.ColumnCount = 2;
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30F));
            tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 70F));
            tableLayoutPanel1.Controls.Add(tableLayoutPanel2, 0, 0);
            tableLayoutPanel1.Controls.Add(tableLayoutPanel3, 1, 0);
            tableLayoutPanel1.Location = new Point(0, 25);
            tableLayoutPanel1.Name = "tableLayoutPanel1";
            tableLayoutPanel1.RowCount = 1;
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
            tableLayoutPanel1.Size = new Size(892, 664);
            tableLayoutPanel1.TabIndex = 0;
            //
            // tableLayoutPanel2
            //
            tableLayoutPanel2.ColumnCount = 1;
            tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100F));
            tableLayoutPanel2.Controls.Add(tableLayoutPanel8, 0, 4);
            tableLayoutPanel2.Controls.Add(tableLayoutPanel7, 0, 3);
            tableLayoutPanel2.Controls.Add(tableLayoutPanel6, 0, 2);
            tableLayoutPanel2.Controls.Add(tableLayoutPanel5, 0, 1);
            tableLayoutPanel2.Controls.Add(tableLayoutPanel4, 0, 0);
            tableLayoutPanel2.Controls.Add(tableLayoutPanel9, 0, 5);
            tableLayoutPanel2.Controls.Add(tableLayoutPanel10, 0, 6);
            tableLayoutPanel2.Dock = DockStyle.Fill;
            tableLayoutPanel2.Location = new Point(3, 3);
            tableLayoutPanel2.Name = "tableLayoutPanel2";
            tableLayoutPanel2.RowCount = 8;
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
            tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F));
            tableLayoutPanel2.Size = new Size(261, 658);
            tableLayoutPanel2.TabIndex = 0;
            //
            // tableLayoutPanel8
            //
            tableLayoutPanel8.ColumnCount = 2;
            tableLayoutPanel8.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
            tableLayoutPanel8.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60F));
            tableLayoutPanel8.Controls.Add(textBoxEmployeeID, 1, 0);
            tableLayoutPanel8.Controls.Add(label5, 0, 0);
            tableLayoutPanel8.Location = new Point(3, 183);
            tableLayoutPanel8.Name = "tableLayoutPanel8";
            tableLayoutPanel8.RowCount = 1;
            tableLayoutPanel8.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel8.Size = new Size(255, 39);
            tableLayoutPanel8.TabIndex = 4;
            //
            // textBoxEmployeeID
            //
            textBoxEmployeeID.Location = new Point(105, 3);
            textBoxEmployeeID.Name = "textBoxEmployeeID";
            textBoxEmployeeID.Size = new Size(147, 30);
            textBoxEmployeeID.TabIndex = 2;
            //
            // label5
            //
            label5.AutoSize = true;
            label5.Dock = DockStyle.Fill;
            label5.ImageAlign = ContentAlignment.MiddleLeft;
            label5.Location = new Point(3, 0);
            label5.Name = "label5";
            label5.Size = new Size(96, 39);
            label5.TabIndex = 1;
            label5.Text = "员工编号";
            label5.TextAlign = ContentAlignment.MiddleLeft;
            //
            // tableLayoutPanel7
            //
            tableLayoutPanel7.ColumnCount = 2;
            tableLayoutPanel7.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
            tableLayoutPanel7.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60F));
            tableLayoutPanel7.Controls.Add(textBoxName, 1, 0);
            tableLayoutPanel7.Controls.Add(label4, 0, 0);
            tableLayoutPanel7.Location = new Point(3, 138);
            tableLayoutPanel7.Name = "tableLayoutPanel7";
            tableLayoutPanel7.RowCount = 1;
            tableLayoutPanel7.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel7.Size = new Size(255, 39);
            tableLayoutPanel7.TabIndex = 3;
            //
            // textBoxName
            //
            textBoxName.Location = new Point(105, 3);
            textBoxName.Name = "textBoxName";
            textBoxName.Size = new Size(147, 30);
            textBoxName.TabIndex = 2;
            //
            // label4
            //
            label4.AutoSize = true;
            label4.Dock = DockStyle.Fill;
            label4.ImageAlign = ContentAlignment.MiddleLeft;
            label4.Location = new Point(3, 0);
            label4.Name = "label4";
            label4.Size = new Size(96, 39);
            label4.TabIndex = 1;
            label4.Text = "姓名";
            label4.TextAlign = ContentAlignment.MiddleLeft;
            //
            // tableLayoutPanel6
            //
            tableLayoutPanel6.ColumnCount = 2;
            tableLayoutPanel6.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
            tableLayoutPanel6.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60F));
            tableLayoutPanel6.Controls.Add(label3, 0, 0);
            tableLayoutPanel6.Controls.Add(comboBoxPermission, 1, 0);
            tableLayoutPanel6.Location = new Point(3, 93);
            tableLayoutPanel6.Name = "tableLayoutPanel6";
            tableLayoutPanel6.RowCount = 1;
            tableLayoutPanel6.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel6.Size = new Size(255, 39);
            tableLayoutPanel6.TabIndex = 2;
            //
            // label3
            //
            label3.AutoSize = true;
            label3.Dock = DockStyle.Fill;
            label3.ImageAlign = ContentAlignment.MiddleLeft;
            label3.Location = new Point(3, 0);
            label3.Name = "label3";
            label3.Size = new Size(96, 39);
            label3.TabIndex = 1;
            label3.Text = "权限";
            label3.TextAlign = ContentAlignment.MiddleLeft;
            //
            // comboBoxPermission
            //
            comboBoxPermission.FormattingEnabled = true;
            comboBoxPermission.Location = new Point(105, 3);
            comboBoxPermission.Name = "comboBoxPermission";
            comboBoxPermission.Size = new Size(147, 28);
            comboBoxPermission.TabIndex = 2;
            //
            // tableLayoutPanel5
            //
            tableLayoutPanel5.ColumnCount = 2;
            tableLayoutPanel5.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
            tableLayoutPanel5.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60F));
            tableLayoutPanel5.Controls.Add(textBoxPassword, 1, 0);
            tableLayoutPanel5.Controls.Add(label2, 0, 0);
            tableLayoutPanel5.Location = new Point(3, 48);
            tableLayoutPanel5.Name = "tableLayoutPanel5";
            tableLayoutPanel5.RowCount = 1;
            tableLayoutPanel5.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel5.Size = new Size(255, 39);
            tableLayoutPanel5.TabIndex = 1;
            //
            // textBoxPassword
            //
            textBoxPassword.Location = new Point(105, 3);
            textBoxPassword.Name = "textBoxPassword";
            textBoxPassword.Size = new Size(147, 30);
            textBoxPassword.TabIndex = 2;
            //
            // label2
            //
            label2.AutoSize = true;
            label2.Dock = DockStyle.Fill;
            label2.ImageAlign = ContentAlignment.MiddleLeft;
            label2.Location = new Point(3, 0);
            label2.Name = "label2";
            label2.Size = new Size(96, 39);
            label2.TabIndex = 1;
            label2.Text = "密码";
            label2.TextAlign = ContentAlignment.MiddleLeft;
            //
            // tableLayoutPanel4
            //
            tableLayoutPanel4.ColumnCount = 2;
            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
            tableLayoutPanel4.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60F));
            tableLayoutPanel4.Controls.Add(label1, 0, 0);
            tableLayoutPanel4.Controls.Add(textBoxUsername, 1, 0);
            tableLayoutPanel4.Location = new Point(3, 3);
            tableLayoutPanel4.Name = "tableLayoutPanel4";
            tableLayoutPanel4.RowCount = 1;
            tableLayoutPanel4.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel4.Size = new Size(255, 39);
            tableLayoutPanel4.TabIndex = 0;
            //
            // label1
            //
            label1.AutoSize = true;
            label1.Dock = DockStyle.Fill;
            label1.Font = new Font("宋体", 12F);
            label1.ImageAlign = ContentAlignment.MiddleLeft;
            label1.Location = new Point(3, 0);
            label1.Name = "label1";
            label1.Size = new Size(96, 39);
            label1.TabIndex = 0;
            label1.Text = "用户名";
            label1.TextAlign = ContentAlignment.MiddleLeft;
            //
            // textBoxUsername
            //
            textBoxUsername.Location = new Point(105, 3);
            textBoxUsername.Name = "textBoxUsername";
            textBoxUsername.Size = new Size(147, 30);
            textBoxUsername.TabIndex = 1;
            //
            // tableLayoutPanel9
            //
            tableLayoutPanel9.ColumnCount = 2;
            tableLayoutPanel9.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
            tableLayoutPanel9.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
            tableLayoutPanel9.Controls.Add(buttonAddUser, 0, 0);
            tableLayoutPanel9.Controls.Add(buttonDelUser, 1, 0);
            tableLayoutPanel9.Location = new Point(3, 228);
            tableLayoutPanel9.Name = "tableLayoutPanel9";
            tableLayoutPanel9.RowCount = 1;
            tableLayoutPanel9.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
            tableLayoutPanel9.Size = new Size(255, 39);
            tableLayoutPanel9.TabIndex = 5;
            //
            // buttonAddUser
            //
            buttonAddUser.BackColor = Color.Black;
            buttonAddUser.Dock = DockStyle.Fill;
            buttonAddUser.Location = new Point(3, 3);
            buttonAddUser.Name = "buttonAddUser";
            buttonAddUser.Size = new Size(121, 33);
            buttonAddUser.TabIndex = 0;
            buttonAddUser.Text = "添加";
            buttonAddUser.UseVisualStyleBackColor = false;
            buttonAddUser.Click += buttonAddUser_Click;
            //
            // buttonDelUser
            //
            buttonDelUser.BackColor = Color.Black;
            buttonDelUser.Dock = DockStyle.Fill;
            buttonDelUser.Location = new Point(130, 3);
            buttonDelUser.Name = "buttonDelUser";
            buttonDelUser.Size = new Size(122, 33);
            buttonDelUser.TabIndex = 1;
            buttonDelUser.Text = "删除";
            buttonDelUser.UseVisualStyleBackColor = false;
            buttonDelUser.Click += buttonDelUser_Click;
            //
            // tableLayoutPanel10
            //
            tableLayoutPanel10.ColumnCount = 2;
            tableLayoutPanel10.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
            tableLayoutPanel10.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
            tableLayoutPanel10.Controls.Add(button4, 1, 0);
            tableLayoutPanel10.Controls.Add(button3, 0, 0);
            tableLayoutPanel10.Location = new Point(3, 273);
            tableLayoutPanel10.Name = "tableLayoutPanel10";
            tableLayoutPanel10.RowCount = 1;
            tableLayoutPanel10.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
            tableLayoutPanel10.Size = new Size(255, 39);
            tableLayoutPanel10.TabIndex = 6;
            //
            // button4
            //
            button4.BackColor = Color.Black;
            button4.Dock = DockStyle.Fill;
            button4.Location = new Point(130, 3);
            button4.Name = "button4";
            button4.Size = new Size(122, 33);
            button4.TabIndex = 2;
            button4.Text = "查询";
            button4.UseVisualStyleBackColor = false;
            //
            // button3
            //
            button3.BackColor = Color.Black;
            button3.Dock = DockStyle.Fill;
            button3.Location = new Point(3, 3);
            button3.Name = "button3";
            button3.Size = new Size(121, 33);
            button3.TabIndex = 1;
            button3.Text = "修改";
            button3.UseVisualStyleBackColor = false;
            //
            // tableLayoutPanel3
            //
            tableLayoutPanel3.ColumnCount = 1;
            tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 100F));
            tableLayoutPanel3.Controls.Add(dataGridView1, 0, 0);
            tableLayoutPanel3.Dock = DockStyle.Fill;
            tableLayoutPanel3.Location = new Point(270, 3);
            tableLayoutPanel3.Name = "tableLayoutPanel3";
            tableLayoutPanel3.RowCount = 1;
            tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tableLayoutPanel3.Size = new Size(619, 658);
            tableLayoutPanel3.TabIndex = 1;
            //
            // dataGridView1
            //
            dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            dataGridView1.Dock = DockStyle.Fill;
            dataGridView1.Location = new Point(3, 3);
            dataGridView1.Name = "dataGridView1";
            dataGridView1.RowHeadersWidth = 51;
            dataGridView1.Size = new Size(613, 652);
            dataGridView1.TabIndex = 0;
            //
            // themeForm1
            //
            themeForm1.BackColor = Color.FromArgb(32, 41, 50);
            themeForm1.Controls.Add(controlBox1);
            themeForm1.Controls.Add(panel1);
            themeForm1.Dock = DockStyle.Fill;
            themeForm1.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 0);
            themeForm1.Image = (Image)resources.GetObject("themeForm1.Image");
            themeForm1.Location = new Point(0, 0);
            themeForm1.Name = "themeForm1";
            themeForm1.Padding = new Padding(10, 70, 10, 9);
            themeForm1.RoundCorners = true;
            themeForm1.Sizable = true;
            themeForm1.Size = new Size(900, 763);
            themeForm1.SmartBounds = true;
            themeForm1.StartPosition = FormStartPosition.WindowsDefaultLocation;
            themeForm1.TabIndex = 21;
            themeForm1.Text = "用户管理设置";
            themeForm1.Click += themeForm1_Click;
            //
            // controlBox1
            //
            controlBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
            controlBox1.BackColor = Color.FromArgb(32, 34, 37);
            controlBox1.CloseHoverColor = Color.FromArgb(230, 17, 35);
            controlBox1.DefaultLocation = true;
            controlBox1.EnableHoverHighlight = true;
            controlBox1.EnableMaximizeButton = true;
            controlBox1.EnableMinimizeButton = true;
            controlBox1.ForeColor = Color.FromArgb(155, 155, 155);
            controlBox1.Location = new Point(800, 18);
            controlBox1.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
            controlBox1.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
            controlBox1.Name = "controlBox1";
            controlBox1.Size = new Size(90, 25);
            controlBox1.TabIndex = 1;
            controlBox1.Text = "controlBox1";
            //
            // panel1
            //
            panel1.Controls.Add(uiGroupBoxUserManagement);
            panel1.Location = new Point(0, 64);
            panel1.Name = "panel1";
            panel1.Size = new Size(900, 699);
            panel1.TabIndex = 0;
            //
            // UserManagementForm
            //
            AutoScaleMode = AutoScaleMode.None;
            AutoSize = true;
            ClientSize = new Size(900, 763);
            Controls.Add(themeForm1);
            FormBorderStyle = FormBorderStyle.None;
            MinimumSize = new Size(261, 61);
            Name = "UserManagementForm";
            Text = "用户管理设置";
            TransparencyKey = Color.Fuchsia;
            uiGroupBoxUserManagement.ResumeLayout(false);
            tableLayoutPanel1.ResumeLayout(false);
            tableLayoutPanel2.ResumeLayout(false);
            tableLayoutPanel8.ResumeLayout(false);
            tableLayoutPanel8.PerformLayout();
            tableLayoutPanel7.ResumeLayout(false);
            tableLayoutPanel7.PerformLayout();
            tableLayoutPanel6.ResumeLayout(false);
            tableLayoutPanel6.PerformLayout();
            tableLayoutPanel5.ResumeLayout(false);
            tableLayoutPanel5.PerformLayout();
            tableLayoutPanel4.ResumeLayout(false);
            tableLayoutPanel4.PerformLayout();
            tableLayoutPanel9.ResumeLayout(false);
            tableLayoutPanel10.ResumeLayout(false);
            tableLayoutPanel3.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)dataGridView1).EndInit();
            themeForm1.ResumeLayout(false);
            panel1.ResumeLayout(false);
            ResumeLayout(false);
        }
        #endregion
        private GroupBox uiGroupBoxUserManagement;
        private ReaLTaiizor.Forms.ThemeForm themeForm1;
        private Panel panel1;
        private TableLayoutPanel tableLayoutPanel1;
        private TableLayoutPanel tableLayoutPanel2;
        private TableLayoutPanel tableLayoutPanel3;
        private TableLayoutPanel tableLayoutPanel8;
        private TableLayoutPanel tableLayoutPanel7;
        private TableLayoutPanel tableLayoutPanel6;
        private TableLayoutPanel tableLayoutPanel5;
        private TableLayoutPanel tableLayoutPanel4;
        private TextBox textBoxEmployeeID;
        private Label label5;
        private TextBox textBoxName;
        private Label label4;
        private Label label3;
        private TextBox textBoxPassword;
        private Label label2;
        private Label label1;
        private TextBox textBoxUsername;
        private TableLayoutPanel tableLayoutPanel9;
        private Button buttonAddUser;
        private Button buttonDelUser;
        private ComboBox comboBoxPermission;
        private TableLayoutPanel tableLayoutPanel10;
        private Button button4;
        private Button button3;
        private DataGridView dataGridView1;
        private ReaLTaiizor.Controls.ControlBox controlBox1;
    }
}
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementForm.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,138 @@
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.Controls.Primitives;
using System.Windows.Forms;
using System.Xml.Linq;
namespace LB_SmartVision.Forms.Pages.UserManagementPage
{
    public partial class UserManagementForm : Form
    {
        public UserManagementForm()
        {
            InitializeComponent();
            InitializeDataGridView();
            InitializeComboBox();
        }
        private void InitializeDataGridView()
        {
            // è®¾ç½®DataGridView列
            dataGridView1.ColumnCount = 5;
            // è®¾ç½®åˆ—标题
            dataGridView1.Columns[0].Name = "用户名";
            dataGridView1.Columns[1].Name = "密码";
            dataGridView1.Columns[2].Name = "姓名";
            dataGridView1.Columns[3].Name = "工号";
            dataGridView1.Columns[4].Name = "权限";
            // è®¾ç½®åˆ—宽
            dataGridView1.Columns[0].Width = 112;
            dataGridView1.Columns[1].Width = 112;
            dataGridView1.Columns[2].Width = 112;
            dataGridView1.Columns[3].Width = 112;
            dataGridView1.Columns[4].Width = 112;
            // ç¦æ­¢ç¼–辑单元格(可选)
            dataGridView1.ReadOnly = true;
            // å…è®¸å¤šè¡Œé€‰æ‹©ï¼ˆå¯é€‰ï¼‰
            dataGridView1.MultiSelect = false;
            // æ˜¾ç¤ºè¡Œæ ‡é¢˜ï¼ˆå¯é€‰ï¼‰
            dataGridView1.RowHeadersVisible = true;
        }
        private void InitializeComboBox()
        {
            // æ·»åŠ æƒé™é€‰é¡¹
            comboBoxPermission.Items.Add("管理员");
            comboBoxPermission.Items.Add("操作员");
            // è®¾ç½®é»˜è®¤é€‰æ‹©é¡¹
            comboBoxPermission.SelectedIndex = 1;
        }
        private void ClearInputFields()
        {
            textBoxUsername.Clear();
            textBoxPassword.Clear();
            textBoxName.Clear();
            textBoxEmployeeID.Clear();
            comboBoxPermission.SelectedIndex = 1;
            textBoxUsername.Focus(); // å°†ç„¦ç‚¹è®¾ç½®å›žç”¨æˆ·åè¾“入框
        }
        private void buttonAddUser_Click(object sender, EventArgs e)
        {
            // éªŒè¯è¾“å…¥
            if (string.IsNullOrWhiteSpace(textBoxUsername.Text) ||
                string.IsNullOrWhiteSpace(textBoxPassword.Text) ||
                string.IsNullOrWhiteSpace(textBoxName.Text) ||
                string.IsNullOrWhiteSpace(textBoxEmployeeID.Text))
            {
                MessageBox.Show("请填写所有必填字段!", "提示",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            // åˆ›å»ºæ–°è¡Œæ•°æ®
            string[] row = new string[]
            {
                textBoxUsername.Text,
                textBoxPassword.Text, // å®žé™…应用中密码应该加密
                textBoxName.Text,
                textBoxEmployeeID.Text,
                comboBoxPermission.SelectedItem.ToString()
            };
            // è®¾ç½®æ•´ä¸ªDataGridView的默认字体和颜色
            dataGridView1.DefaultCellStyle.Font = new Font("宋体", 12);
            dataGridView1.DefaultCellStyle.ForeColor = Color.Black;  // å­—体颜色
            dataGridView1.DefaultCellStyle.BackColor = Color.White;   // èƒŒæ™¯é¢œè‰²
            // æ·»åŠ æ–°è¡Œåˆ°DataGridView
            dataGridView1.Rows.Add(row);
            // æ¸…空输入框
            ClearInputFields();
        }
        private void buttonDelUser_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count > 0)
            {
                // ç¡®è®¤åˆ é™¤
                DialogResult result = MessageBox.Show("确定要删除选中的行吗?",
                    "确认删除", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    foreach (DataGridViewRow row in dataGridView1.SelectedRows)
                    {
                        dataGridView1.Rows.Remove(row);
                    }
                }
            }
            else
            {
                MessageBox.Show("请先选择要删除的行!", "提示",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        private void themeForm1_Click(object sender, EventArgs e)
        {
        }
    }
}
LB_SmartVision/Forms/Pages/UserManagementPage/UserManagementForm.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,286 @@
<?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>
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <data name="themeForm1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        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
        OfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMc
        eppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49
        zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m
        0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2
        AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOn
        OfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMc
        eppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49
        zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m
        0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2
        AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOn
        OfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMc
        eppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49
        zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m
        0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2
        AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOn
        OfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMc
        eppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m0NOcDcAxeppDT3PoaQ49
        zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M2AMfoaQ49zaGnOfQ0h57m
        0NOcDcAxeppDT3PoaQ49zaGnOfQ0ZwNwjJ7m0NMceppDT3PoaQ49zdkAHKOnOfQ0h57m0NMceppDT3M+
        +LUf/Tjtn775tbRv/+XX037pMx+mfSnuX/7qG2n/+Xd/kvbVL3yUtgE4Rk9z6GkOPc2hpzn0NIee5mwA
        jtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z
        6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0
        NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqa
        Q09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2h
        pzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwA
        jtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z
        6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0
        NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqa
        Q09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2h
        pzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwA
        jtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z
        6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0
        NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqa
        Q09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2h
        pzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwA
        jtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z
        6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqaQ09z6GnOBuAYPc2hpzn0
        NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2hpzkbgGP0NIee5tDTHHqa
        Q09z6GnOBuAYPc2hpzn0NIee5tDTHHqaswE4Rk9z6GkOPc2hpzn0NIee5mwAjtHTHHqaQ09z6GkOPc2h
        pzkbgGP0NIee5tDTHHqaQ09z6GnOB1/+3CfT+J6cr3y+7bv/899z6Muf+yiNc8j5lc9+mLYBOEZPc+jR
        PEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqa
        swE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8
        Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqz
        AThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxG
        T3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMB
        OEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZP
        cziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4
        Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9z
        OIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThG
        T3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4
        hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZP
        c+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziH
        HHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z
        6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIcc
        epqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po
        0TxGT3M4hxx6mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6
        mrMBOEZPc+jRPEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mrMBOEZPc+jR
        PEZPcziHHHqaswE4Rk9z6NE8Rk9zOIccepqzAThGT3Po0TxGT3M4hxx6mvPB7/78j6T93i9+Lu23fuYz
        aV/9wsdpv/r5j9J+52c/m/brP/3pObQBOEZPc+hpDj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R
        0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3N
        oUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6mkNPc+jRPLYBOEZPc+hpDj3Noac59Gge2wAco6c5
        9DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP
        5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6mkNPc+jRPLYBOEZPc+hp
        Dj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1j
        G4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6
        mkNPc+jRPLYBOEZPc+hpDj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYA
        x+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSH
        nubQo3lsA3CMnubQ0xx6mkNPc+jRPLYBOEZPc+hpDj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R
        0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3N
        oUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6mkNPc+jRPLYBOEZPc+hpDj3Noac59Gge2wAco6c5
        9DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP
        5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6mkNPc+jRPLYBOEZPc+hp
        Dj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYAx+hpDj3Noac59DSHHs1j
        G4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSHnubQo3lsA3CMnubQ0xx6
        mkNPc+jRPLYBOEZPc+hpDj3Noac59Gge2wAco6c59DSHnubQ0xx6NI9tAI7R0xx6mkNPc+hpDj2axzYA
        x+hpDj3Noac59DSHHs1jG4Bj9DSHnubQ0xx6mkOP5rENwDF6mkNPc+hpDj3NoUfz2AbgGD3Noac59DSH
        nubQo3nqpz/9/zfth9fZ0q70AAAAAElFTkSuQmCC
</value>
  </data>
</root>
LB_SmartVision/VisionForm.Designer.cs
@@ -69,11 +69,12 @@
            theme_VisionForm.Font = new Font("Microsoft YaHei UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 0);
            theme_VisionForm.Image = (Image)resources.GetObject("theme_VisionForm.Image");
            theme_VisionForm.Location = new Point(0, 0);
            theme_VisionForm.Margin = new Padding(4);
            theme_VisionForm.Name = "theme_VisionForm";
            theme_VisionForm.Padding = new Padding(10, 70, 10, 9);
            theme_VisionForm.Padding = new Padding(12, 88, 12, 11);
            theme_VisionForm.RoundCorners = true;
            theme_VisionForm.Sizable = true;
            theme_VisionForm.Size = new Size(1440, 960);
            theme_VisionForm.Size = new Size(1800, 1200);
            theme_VisionForm.SmartBounds = true;
            theme_VisionForm.StartPosition = FormStartPosition.WindowsDefaultLocation;
            theme_VisionForm.TabIndex = 0;
@@ -82,7 +83,8 @@
            // sc_VisionForm
            // 
            sc_VisionForm.Dock = DockStyle.Fill;
            sc_VisionForm.Location = new Point(10, 70);
            sc_VisionForm.Location = new Point(12, 88);
            sc_VisionForm.Margin = new Padding(4);
            sc_VisionForm.Name = "sc_VisionForm";
            sc_VisionForm.Orientation = Orientation.Horizontal;
            // 
@@ -93,14 +95,16 @@
            // sc_VisionForm.Panel2
            // 
            sc_VisionForm.Panel2.Controls.Add(grb_Info);
            sc_VisionForm.Size = new Size(1420, 881);
            sc_VisionForm.SplitterDistance = 699;
            sc_VisionForm.Size = new Size(1776, 1101);
            sc_VisionForm.SplitterDistance = 873;
            sc_VisionForm.SplitterWidth = 5;
            sc_VisionForm.TabIndex = 1;
            // 
            // sc_VisionMainViewer
            // 
            sc_VisionMainViewer.Dock = DockStyle.Fill;
            sc_VisionMainViewer.Location = new Point(0, 0);
            sc_VisionMainViewer.Margin = new Padding(4);
            sc_VisionMainViewer.Name = "sc_VisionMainViewer";
            sc_VisionMainViewer.Orientation = Orientation.Horizontal;
            // 
@@ -111,8 +115,9 @@
            // sc_VisionMainViewer.Panel2
            // 
            sc_VisionMainViewer.Panel2.Controls.Add(materialTabControl);
            sc_VisionMainViewer.Size = new Size(1420, 699);
            sc_VisionMainViewer.SplitterDistance = 100;
            sc_VisionMainViewer.Size = new Size(1776, 873);
            sc_VisionMainViewer.SplitterDistance = 124;
            sc_VisionMainViewer.SplitterWidth = 5;
            sc_VisionMainViewer.TabIndex = 0;
            // 
            // tlp_VisionMainForm
@@ -124,11 +129,12 @@
            tlp_VisionMainForm.Controls.Add(materialTabSelector, 0, 0);
            tlp_VisionMainForm.Dock = DockStyle.Fill;
            tlp_VisionMainForm.Location = new Point(0, 0);
            tlp_VisionMainForm.Margin = new Padding(4);
            tlp_VisionMainForm.Name = "tlp_VisionMainForm";
            tlp_VisionMainForm.RowCount = 2;
            tlp_VisionMainForm.RowStyles.Add(new RowStyle(SizeType.Absolute, 61F));
            tlp_VisionMainForm.RowStyles.Add(new RowStyle(SizeType.Absolute, 39F));
            tlp_VisionMainForm.Size = new Size(1420, 100);
            tlp_VisionMainForm.RowStyles.Add(new RowStyle(SizeType.Absolute, 76F));
            tlp_VisionMainForm.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
            tlp_VisionMainForm.Size = new Size(1776, 124);
            tlp_VisionMainForm.TabIndex = 0;
            tlp_VisionMainForm.TagString = null;
            // 
@@ -150,11 +156,12 @@
            tlp_VisionMainOperator.Controls.Add(btn_GlobalVar, 7, 0);
            tlp_VisionMainOperator.Controls.Add(com_ProductName, 8, 0);
            tlp_VisionMainOperator.Dock = DockStyle.Fill;
            tlp_VisionMainOperator.Location = new Point(3, 64);
            tlp_VisionMainOperator.Location = new Point(4, 80);
            tlp_VisionMainOperator.Margin = new Padding(4);
            tlp_VisionMainOperator.Name = "tlp_VisionMainOperator";
            tlp_VisionMainOperator.RowCount = 1;
            tlp_VisionMainOperator.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
            tlp_VisionMainOperator.Size = new Size(1414, 33);
            tlp_VisionMainOperator.Size = new Size(1768, 41);
            tlp_VisionMainOperator.TabIndex = 0;
            tlp_VisionMainOperator.TagString = null;
            // 
@@ -163,10 +170,11 @@
            ckb_AllowRun.Dock = DockStyle.Fill;
            ckb_AllowRun.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            ckb_AllowRun.ForeColor = SystemColors.Control;
            ckb_AllowRun.Location = new Point(3, 3);
            ckb_AllowRun.Location = new Point(4, 4);
            ckb_AllowRun.Margin = new Padding(4);
            ckb_AllowRun.MinimumSize = new Size(1, 1);
            ckb_AllowRun.Name = "ckb_AllowRun";
            ckb_AllowRun.Size = new Size(151, 27);
            ckb_AllowRun.Size = new Size(188, 33);
            ckb_AllowRun.TabIndex = 2;
            ckb_AllowRun.Text = "运行模式";
            // 
@@ -181,11 +189,12 @@
            btn_Login.Image = null;
            btn_Login.ImageAlign = ContentAlignment.MiddleLeft;
            btn_Login.InactiveColor = Color.FromArgb(32, 34, 37);
            btn_Login.Location = new Point(160, 3);
            btn_Login.Location = new Point(200, 4);
            btn_Login.Margin = new Padding(4);
            btn_Login.Name = "btn_Login";
            btn_Login.PressedBorderColor = Color.FromArgb(165, 37, 37);
            btn_Login.PressedColor = Color.FromArgb(165, 37, 37);
            btn_Login.Size = new Size(151, 27);
            btn_Login.Size = new Size(188, 33);
            btn_Login.TabIndex = 3;
            btn_Login.Text = "用户登录";
            btn_Login.TextAlignment = StringAlignment.Center;
@@ -202,11 +211,12 @@
            btn_GlobalVar.Image = null;
            btn_GlobalVar.ImageAlign = ContentAlignment.MiddleLeft;
            btn_GlobalVar.InactiveColor = Color.FromArgb(32, 34, 37);
            btn_GlobalVar.Location = new Point(1102, 3);
            btn_GlobalVar.Location = new Point(1376, 4);
            btn_GlobalVar.Margin = new Padding(4);
            btn_GlobalVar.Name = "btn_GlobalVar";
            btn_GlobalVar.PressedBorderColor = Color.FromArgb(165, 37, 37);
            btn_GlobalVar.PressedColor = Color.FromArgb(165, 37, 37);
            btn_GlobalVar.Size = new Size(151, 27);
            btn_GlobalVar.Size = new Size(188, 33);
            btn_GlobalVar.TabIndex = 4;
            btn_GlobalVar.Text = "全局变量";
            btn_GlobalVar.TextAlignment = StringAlignment.Center;
@@ -220,9 +230,10 @@
            com_ProductName.EnabledCalc = true;
            com_ProductName.FormattingEnabled = true;
            com_ProductName.ItemHeight = 20;
            com_ProductName.Location = new Point(1259, 3);
            com_ProductName.Location = new Point(1572, 4);
            com_ProductName.Margin = new Padding(4);
            com_ProductName.Name = "com_ProductName";
            com_ProductName.Size = new Size(152, 26);
            com_ProductName.Size = new Size(192, 26);
            com_ProductName.TabIndex = 5;
            com_ProductName.SelectedValueChanged += com_ProductName_SelectedValueChanged;
            // 
@@ -231,10 +242,11 @@
            materialTabSelector.BaseTabControl = materialTabControl;
            materialTabSelector.Depth = 0;
            materialTabSelector.Dock = DockStyle.Fill;
            materialTabSelector.Location = new Point(3, 3);
            materialTabSelector.Location = new Point(4, 4);
            materialTabSelector.Margin = new Padding(4);
            materialTabSelector.MouseState = MaterialSkin.MouseState.HOVER;
            materialTabSelector.Name = "materialTabSelector";
            materialTabSelector.Size = new Size(1414, 55);
            materialTabSelector.Size = new Size(1768, 68);
            materialTabSelector.TabIndex = 1;
            // 
            // materialTabControl
@@ -245,18 +257,20 @@
            materialTabControl.Depth = 0;
            materialTabControl.Dock = DockStyle.Fill;
            materialTabControl.Location = new Point(0, 0);
            materialTabControl.Margin = new Padding(4);
            materialTabControl.MouseState = MaterialSkin.MouseState.HOVER;
            materialTabControl.Name = "materialTabControl";
            materialTabControl.SelectedIndex = 0;
            materialTabControl.Size = new Size(1420, 595);
            materialTabControl.Size = new Size(1776, 744);
            materialTabControl.TabIndex = 0;
            // 
            // tabPage1
            // 
            tabPage1.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
            tabPage1.Location = new Point(4, 30);
            tabPage1.Location = new Point(4, 36);
            tabPage1.Margin = new Padding(4);
            tabPage1.Name = "tabPage1";
            tabPage1.Size = new Size(1412, 561);
            tabPage1.Size = new Size(1768, 704);
            tabPage1.TabIndex = 0;
            tabPage1.Text = "tabPage1";
            tabPage1.UseVisualStyleBackColor = true;
@@ -264,9 +278,10 @@
            // tabPage2
            // 
            tabPage2.Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, 134);
            tabPage2.Location = new Point(4, 26);
            tabPage2.Location = new Point(4, 29);
            tabPage2.Margin = new Padding(4);
            tabPage2.Name = "tabPage2";
            tabPage2.Size = new Size(1412, 565);
            tabPage2.Size = new Size(1768, 711);
            tabPage2.TabIndex = 1;
            tabPage2.Text = "tabPage2";
            tabPage2.UseVisualStyleBackColor = true;
@@ -279,11 +294,11 @@
            grb_Info.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            grb_Info.ForeColor = SystemColors.Control;
            grb_Info.Location = new Point(0, 0);
            grb_Info.Margin = new Padding(4, 5, 4, 5);
            grb_Info.Margin = new Padding(5, 6, 5, 6);
            grb_Info.MinimumSize = new Size(1, 1);
            grb_Info.Name = "grb_Info";
            grb_Info.Padding = new Padding(0, 32, 0, 0);
            grb_Info.Size = new Size(1420, 178);
            grb_Info.Padding = new Padding(0, 40, 0, 0);
            grb_Info.Size = new Size(1776, 223);
            grb_Info.TabIndex = 1;
            grb_Info.Text = "日志显示区:";
            grb_Info.TextAlignment = ContentAlignment.MiddleLeft;
@@ -293,13 +308,13 @@
            rich_Info.Dock = DockStyle.Fill;
            rich_Info.FillColor = Color.FromArgb(32, 41, 50);
            rich_Info.Font = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, 134);
            rich_Info.Location = new Point(0, 32);
            rich_Info.Location = new Point(0, 40);
            rich_Info.Margin = new Padding(4, 5, 4, 5);
            rich_Info.MinimumSize = new Size(1, 1);
            rich_Info.Name = "rich_Info";
            rich_Info.Padding = new Padding(2);
            rich_Info.ShowText = false;
            rich_Info.Size = new Size(1420, 146);
            rich_Info.Size = new Size(1776, 183);
            rich_Info.TabIndex = 0;
            rich_Info.TextAlignment = ContentAlignment.MiddleLeft;
            // 
@@ -313,7 +328,8 @@
            cb_VisionForm.EnableMaximizeButton = true;
            cb_VisionForm.EnableMinimizeButton = true;
            cb_VisionForm.ForeColor = Color.FromArgb(155, 155, 155);
            cb_VisionForm.Location = new Point(1340, 18);
            cb_VisionForm.Location = new Point(1675, 18);
            cb_VisionForm.Margin = new Padding(4);
            cb_VisionForm.MaximizeHoverColor = Color.FromArgb(74, 74, 74);
            cb_VisionForm.MinimizeHoverColor = Color.FromArgb(63, 63, 65);
            cb_VisionForm.Name = "cb_VisionForm";
@@ -323,13 +339,14 @@
            // 
            // VisionForm
            // 
            AutoScaleDimensions = new SizeF(96F, 96F);
            AutoScaleDimensions = new SizeF(120F, 120F);
            AutoScaleMode = AutoScaleMode.Dpi;
            ClientSize = new Size(1440, 960);
            ClientSize = new Size(1800, 1200);
            Controls.Add(theme_VisionForm);
            FormBorderStyle = FormBorderStyle.None;
            Icon = (Icon)resources.GetObject("$this.Icon");
            MinimumSize = new Size(261, 61);
            Margin = new Padding(4);
            MinimumSize = new Size(326, 76);
            Name = "VisionForm";
            Text = "轮胎外观视觉检测系统";
            TransparencyKey = Color.Fuchsia;
LB_SmartVision/VisionForm.resx
@@ -121,24 +121,24 @@
  <data name="theme_VisionForm.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
        vAAADrwBlbxySQAAA+JJREFUWEftVkuIHGUQbt34iMEoq2S2q3p3yTJsuqpnJ+L6WBRdwaigohfFgEou
        BkVBUPCBCEG8BXNQ48GLeImCehIJxMsqhsSZruod46K4HtSIGjU+4iOr0c1I9fSsM3/PLNtCPO0H36m/
        evz/X11VnreKVRTAHPOZumkY6lFwqURws3BwZ8ywTQnuiCP/+iTCzY1qaUPzdm/Atf3PaHre6XPsjyQM
        2xLGV4XwIyX4QRj+UMK/lPFvJTyhBMeV8IgQvmRJuH4Ko+l5p9UjGBbCJ5RxTgj+VMZmXxKcSAjekHE/
        NNs5DgaTKLinEQYVO4Trf1mkV81wixLUslPmA3bzF2XcKeP+hWY/u3n0fCXcrQwLyjAvjNsb1dI6N05P
        mFAIHlHG73sEypPgGwnhfpn0zzH7jzddcK4Q7kqfKNMI4a9K+MwBDgbdeF04MBWsFYYdQvhbLlBvfhKT
        f+vMtLfG7C0JJXxKGY67WnvCmPAFGRs7z42boul5AzHBfdK6TjdQtzPGk8oos5F/5Y7sfVvPhg+lp+1h
        0yIsxARPmtaN78WEl8eEX+SNclxUhne0glUrNrN9zfMGlPAuZTzaQ99FYfwuDv3ruoLvq5bWaQSvZCfL
        GXUYLwrj240Qxtu2lkSN4FpdWfKZH9jb9RQ1Cq62f9sVOlxUxn3KQXnJ0PO8QxU/jBm1h74v7ZniEG9K
        Hdg/quzvXO709k0Y3u08ucGqWgheX862H4XgxbR47SqU8D1X0EXC2VmGizqDz0xPr0kYH9eO360gNe0b
        jWppozB+1kOQEb5MCLa0C64NoeGrhOGrvH6lhK81GiIvnggmrDLzgvTkvwvDA+5wsU4nhG/m9AUoBD/F
        HFzWN4H0XQn2vF8eXN8Z3FAPYasl59oUYjuB+sTImDB+nhfgYQ39STf4fmu1DHtz+oIUgiM1KkWtwcFw
        sOujVT3hrnaL7UQc+hcL5W+sKIXhw0OVjaW0iwnBc47gqIQ45QY32PKRzv8eTguRYM9SS5YouEEZjv37
        EffbzbjBDdZyxZYQ12EB2qS0bWrJqRVazPDWkojwZbuZrsgZtDJ0iY1g12khEtTicMTvclwn2CKE32YJ
        7G5PORfZ1HtMCH7MOV4BrQ3XCe92+4onk5Nn2PolDAvWXnuOzAwzo6Nnx4Q3SrojwqfKeMxWMpsXWVs+
        2WrfKRdbW1W6Hf0shM/33Y7my4PrleFZIfhAaWjU/e5ivlw+y3S2FySMtynjvcrwsFiLJv/RhPBB2ws1
        hK2WcBLBFf1qawlplwvxaQlxe786OOU4PBWsjSO85mBlQ8n99r/BisSdAas4FfgHpdEUZpwUX7sAAAAA
        SUVORK5CYII=
        vAAADrwBlbxySQAAA+xJREFUWEftV0loFUkYbvcNFzJi0lWdBEPQruqXKEYdcRgz4AYqeplBwYiXEUVB
        UHAhCEG8iR509OBlmIsOjJ5EBvQSRVHzuvslxjAy8eCG+75GozF+f716L6873fqe2ykffDR59e9/1V8V
        ow99KARtUg72J5aypGNN8xy2yJPWcleylb5gS13HnJdy+KSW6uJx3b8ZA7TKl6PbMPq3SbMsBUcpyf/2
        BP8PDh96kr32BX/rS/4O30789grfO1j/k4LQ6p8POO6XdFgpDNbDSZsn2Bt8u2MpWGdKsCPeBNMm3TZp
        FaUc6/cW20pQEtpsflCllmwxjDbpLKOd9vAZuBPOx5J+86TyMdDbBxsdYLsn+SpUZYQy/imQILLdBIP3
        cxzEU7Dbns3WejXmcNK/NPGHkajabtUiLYO/nyOgXWdRFeUkDmdnWMOg2ACFFwEn8fzfFeaSxlpjIOlT
        EHC0HVm/CstSC13B93sVFaOVszDQpwGuYGtQLipnQDlMyLzH12t2zJ8adH/TbeMbVLYROmmyDvjYRrLK
        aS4Q3Y/gtWjFALtg6KSf4NW02Uj3HwSPzOuw9iAk24sI/p5rm3OV0wyOo+++ww7pzCIViVjvAk+02GyC
        VlWnpUmw2Qggn+AV0eZ/A61oEtYsOttRwjlE5vy4L61KrabQmjBtV3I/JPtRUptcmy9UBuiM+tLc+bHs
        aQ1Rn8rNnEC7Gpvr8KcqF0XoHVCbl0qB8p2OEspS8OZmySZrvwqNtbUDMRm3Yj9kj1uB9NXcwLkfjwyu
        RAhoshuYcHMyGy4DT5T+jKrcjNbJh+yW75QIw62yqhDAvUghwV/Cybrw5UKTDn08GqmTJ9GCx660pscG
        oPoq2MHzlUWjtN8skjZbRsGFdQpiJoBkVVkFnF3tLcCv+7ZZo31mcYZGLY5RL/kCiQrcaRLFTvrikOxc
        YJF2PeZ5ZsTmAkNkCtaiW1YAkcTF1sT4YjXFEM3ekMADz+YztM8AULqlqE5nSL5wor3Zkew51nxU4WnP
        Ij9DlVGLIWCtDhV6FzBWIJH9a3pNaZOGQRsNT6tjWSHB/6LK6OUA/ETJVER/O9dgwcQ7w7XLTG0yjSTO
        Onp7Ny3A92VuuTD0rbcFbXsUMJonaQwnBV8Rniu4y2sGYbEe5emA8cORV6ZGY3n5UNycC9AKvBHZZRh+
        iqxoX9BlRWMZozvLLiSEV5V6HT2Bjz9iX0ftaAWE9sDoBV+UlOufY9FeWTmE5OhdgLH8Kxyvhv5GON3q
        C3NzSvD19C70MTco4JTDZsbtrSzUlLP5DnBV3D745riOp5nr8F/OJcYV65++P2iTfNV/MPoQCcP4AKXR
        FGYxo/VGAAAAAElFTkSuQmCC
</value>
  </data>
  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">