Browse Source

SOP添加放大镜

callm 1 year ago
parent
commit
617d7530e7
100 changed files with 5541 additions and 56 deletions
  1. 1 1
      FileWatcher/AutoAnalysisDevice.Designer.cs
  2. 1 1
      FileWatcher/AutoAnalysisXml.Designer.cs
  3. 1 1
      FileWatcher/AutoAnalysisXmlByStep.Designer.cs
  4. 1 1
      FileWatcher/AutoMakeQTY.Designer.cs
  5. 48 0
      FileWatcher/BaseForm.Designer.cs
  6. 37 0
      FileWatcher/BaseForm.cs
  7. 120 0
      FileWatcher/BaseForm.resx
  8. 192 0
      FileWatcher/BaseUtil.cs
  9. 43 0
      FileWatcher/ClickPicBox.Designer.cs
  10. 43 0
      FileWatcher/ClickPicBox.cs
  11. 120 0
      FileWatcher/ClickPicBox.resx
  12. 1 1
      FileWatcher/DateWeek.Designer.cs
  13. 88 0
      FileWatcher/DbFind.Designer.cs
  14. 296 0
      FileWatcher/DbFind.cs
  15. 120 0
      FileWatcher/DbFind.resx
  16. 45 0
      FileWatcher/EnterTextBox.Designer.cs
  17. 101 0
      FileWatcher/EnterTextBox.cs
  18. 123 0
      FileWatcher/EnterTextBox.resx
  19. 198 2
      FileWatcher/FileWatcher.csproj
  20. 1 1
      FileWatcher/Form1.Designer.cs
  21. 2 2
      FileWatcher/Form2.Designer.cs
  22. 1 1
      FileWatcher/Form4.Designer.cs
  23. 1 1
      FileWatcher/Form5.Designer.cs
  24. 5 38
      FileWatcher/Form5.cs
  25. 42 0
      FileWatcher/LockCheckBox.Designer.cs
  26. 75 0
      FileWatcher/LockCheckBox.cs
  27. 123 0
      FileWatcher/LockCheckBox.resx
  28. 1 1
      FileWatcher/Login.Designer.cs
  29. 89 0
      FileWatcher/MaCodeSearchTextBox.Designer.cs
  30. 358 0
      FileWatcher/MaCodeSearchTextBox.cs
  31. 120 0
      FileWatcher/MaCodeSearchTextBox.resx
  32. 45 0
      FileWatcher/MaCodeTextBox.Designer.cs
  33. 87 0
      FileWatcher/MaCodeTextBox.cs
  34. 123 0
      FileWatcher/MaCodeTextBox.resx
  35. 322 0
      FileWatcher/Pagination.Designer.cs
  36. 354 0
      FileWatcher/Pagination.cs
  37. 129 0
      FileWatcher/Pagination.resx
  38. 327 0
      FileWatcher/PaginationDbFind.Designer.cs
  39. 358 0
      FileWatcher/PaginationDbFind.cs
  40. 129 0
      FileWatcher/PaginationDbFind.resx
  41. 970 0
      FileWatcher/Properties/Resources.Designer.cs
  42. 300 5
      FileWatcher/Properties/Resources.resx
  43. BIN
      FileWatcher/Resources/07.gif
  44. BIN
      FileWatcher/Resources/0802192135.png
  45. BIN
      FileWatcher/Resources/15aedb5b-a345-48b6-8b81-784e410d7fd1.png
  46. BIN
      FileWatcher/Resources/2-0btn_04.png
  47. BIN
      FileWatcher/Resources/2-0btn_07.png
  48. BIN
      FileWatcher/Resources/2-0btn_36.png
  49. BIN
      FileWatcher/Resources/20130711113247276.png
  50. BIN
      FileWatcher/Resources/46.gif
  51. BIN
      FileWatcher/Resources/83.gif
  52. BIN
      FileWatcher/Resources/Barcode_48px_1072745_easyicon.net.png
  53. BIN
      FileWatcher/Resources/CLOSE_24px_1115282_easyicon.net.png
  54. BIN
      FileWatcher/Resources/Close_up_32px_1181430_easyicon.net.png
  55. BIN
      FileWatcher/Resources/Excel_2010_16px_1180011_easyicon.net.png
  56. BIN
      FileWatcher/Resources/Excel_2013_16px_1180012_easyicon.net.png
  57. BIN
      FileWatcher/Resources/Image1.bmp
  58. BIN
      FileWatcher/Resources/Light.png
  59. BIN
      FileWatcher/Resources/LoadingError.gif
  60. BIN
      FileWatcher/Resources/LoadingFormat.gif
  61. BIN
      FileWatcher/Resources/Lock24px.png
  62. BIN
      FileWatcher/Resources/LoginBG.jpg
  63. BIN
      FileWatcher/Resources/Logout_32px_581264_easyicon.net.png
  64. BIN
      FileWatcher/Resources/OQC作业.png
  65. BIN
      FileWatcher/Resources/People_48px_500819_easyicon.net.png
  66. BIN
      FileWatcher/Resources/Sound/1454.wav
  67. BIN
      FileWatcher/Resources/Sound/3291.wav
  68. BIN
      FileWatcher/Resources/Sound/3853.wav
  69. BIN
      FileWatcher/Resources/Sound/4082.wav
  70. BIN
      FileWatcher/Resources/Sound/5185.wav
  71. BIN
      FileWatcher/Resources/Sound/8378.wav
  72. BIN
      FileWatcher/Resources/Sound/9865.wav
  73. BIN
      FileWatcher/Resources/Sound/Windows Background.wav
  74. BIN
      FileWatcher/Resources/White-side.png
  75. BIN
      FileWatcher/Resources/WhiteImage.png
  76. BIN
      FileWatcher/Resources/b473847f-a85b-400e-807a-4875c4c07ff1.png
  77. BIN
      FileWatcher/Resources/bindingNavigatorAddNewItem.Image.png
  78. BIN
      FileWatcher/Resources/bindingNavigatorDeleteItem.Image.png
  79. BIN
      FileWatcher/Resources/bindingNavigatorMoveFirstItem.Image.png
  80. BIN
      FileWatcher/Resources/bindingNavigatorMoveLastItem.Image.png
  81. BIN
      FileWatcher/Resources/bindingNavigatorMoveNextItem.Image.png
  82. BIN
      FileWatcher/Resources/bindingNavigatorMovePreviousItem.Image.png
  83. BIN
      FileWatcher/Resources/box_17.453077699294px_1191579_easyicon.net.png
  84. BIN
      FileWatcher/Resources/box_26.17961654894px_1191579_easyicon.net.png
  85. BIN
      FileWatcher/Resources/btncheckoff1.png
  86. BIN
      FileWatcher/Resources/btncheckoff2.png
  87. BIN
      FileWatcher/Resources/btncheckoff3.png
  88. BIN
      FileWatcher/Resources/btncheckoff4.png
  89. BIN
      FileWatcher/Resources/btncheckoff5.png
  90. BIN
      FileWatcher/Resources/btncheckoff6.png
  91. BIN
      FileWatcher/Resources/btncheckon1.png
  92. BIN
      FileWatcher/Resources/btncheckon2.png
  93. BIN
      FileWatcher/Resources/btncheckon3.png
  94. BIN
      FileWatcher/Resources/btncheckon4.png
  95. BIN
      FileWatcher/Resources/btncheckon5.png
  96. BIN
      FileWatcher/Resources/btncheckon6.png
  97. BIN
      FileWatcher/Resources/change_password.png
  98. BIN
      FileWatcher/Resources/close.png
  99. BIN
      FileWatcher/Resources/close_16px_558195_easyicon.net.png
  100. BIN
      FileWatcher/Resources/close_24px_1139093_easyicon.net.png

+ 1 - 1
FileWatcher/AutoAnalysisDevice.Designer.cs

@@ -270,7 +270,7 @@
             this.Load += new System.EventHandler(this.Form1_Load);
             ((System.ComponentModel.ISupportInitialize)(this.XmlWatcher)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.ATEFile)).EndInit();
-            this.ResumeLayout(false);
+            this.ResumeLayout(true);
             this.PerformLayout();
 
         }

+ 1 - 1
FileWatcher/AutoAnalysisXml.Designer.cs

@@ -289,7 +289,7 @@
             this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
             this.Load += new System.EventHandler(this.Form1_Load);
             ((System.ComponentModel.ISupportInitialize)(this.XmlWatcher)).EndInit();
-            this.ResumeLayout(false);
+            this.ResumeLayout(true);
             this.PerformLayout();
 
         }

+ 1 - 1
FileWatcher/AutoAnalysisXmlByStep.Designer.cs

@@ -336,7 +336,7 @@
             this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
             this.Load += new System.EventHandler(this.Form1_Load);
             ((System.ComponentModel.ISupportInitialize)(this.XmlWatcher)).EndInit();
-            this.ResumeLayout(false);
+            this.ResumeLayout(true);
             this.PerformLayout();
 
         }

+ 1 - 1
FileWatcher/AutoMakeQTY.Designer.cs

@@ -254,7 +254,7 @@
             this.Load += new System.EventHandler(this.Form1_Load);
             ((System.ComponentModel.ISupportInitialize)(this.XmlWatcher)).EndInit();
             ((System.ComponentModel.ISupportInitialize)(this.ATEFile)).EndInit();
-            this.ResumeLayout(false);
+            this.ResumeLayout(true);
             this.PerformLayout();
 
         }

+ 48 - 0
FileWatcher/BaseForm.Designer.cs

@@ -0,0 +1,48 @@
+namespace FileWatcher
+{
+    partial class BaseForm
+    {
+        /// <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()
+        {
+            this.SuspendLayout();
+            // 
+            // BaseForm
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(725, 425);
+            this.Name = "BaseForm";
+            this.Text = "BaseForm";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BaseForm_FormClosing);
+            this.Load += new System.EventHandler(this.BaseForm_Load);
+            this.ResumeLayout(true);
+
+        }
+
+        #endregion
+    }
+}

+ 37 - 0
FileWatcher/BaseForm.cs

@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace FileWatcher
+{
+    public partial class BaseForm : Form
+    {
+        public BaseForm()
+        {
+            InitializeComponent();
+        }
+
+        private void BaseForm_Load(object sender, EventArgs e)
+        {
+            if (!DesignMode)
+            {
+                //Main main = Application.OpenForms["Main"] as Main;
+                //main.TopMost = false;
+            }
+        }
+
+        private void BaseForm_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            if (!DesignMode)
+            {
+                //Main main = Application.OpenForms["Main"] as Main;
+                //main.TopMost = (main.Controls["headBar1"].Controls["AlwaysTop"] as CheckBox).Checked;
+            }
+        }
+    }
+}

+ 120 - 0
FileWatcher/BaseForm.resx

@@ -0,0 +1,120 @@
+<?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>
+</root>

+ 192 - 0
FileWatcher/BaseUtil.cs

@@ -8,6 +8,7 @@ using System.Text.RegularExpressions;
 using System.Web.Script.Serialization;
 using System.Windows.Forms;
 using System.Xml;
+using static System.Windows.Forms.Control;
 
 namespace FileWatcher
 {
@@ -15,6 +16,197 @@ namespace FileWatcher
 
     class BaseUtil
     {
+        public static void ShowError(string errorMessage)
+        {
+            throw new Exception(errorMessage);
+        }
+
+        public static string AddField(string[] Fields)
+        {
+            string sql = " ";
+            foreach (string field in Fields)
+                sql += field + ",";
+            return sql.Substring(0, sql.Length - 1);
+        }
+
+
+        static int SortByIndex(Control A, Control B)
+        {
+            return A.TabIndex.CompareTo(B.TabIndex);
+        }
+
+
+        public static void SetFormValue(ControlCollection collection, DataTable dt)
+        {
+            List<Control> ctl = new List<Control>();
+            //将控件按照索引排序
+            for (int i = 0; i < collection.Count; i++)
+            {
+                for (int j = 0; j < ctl.Count; j++)
+                {
+                    if (!ctl.Contains(collection[i]))
+                    {
+
+                        if (collection[i].TabIndex > ctl[j].TabIndex)
+                        {
+                            ctl.Add(collection[i]);
+                            break;
+                        }
+                        else
+                        {
+                            ctl.Insert(j, collection[i]);
+                            break;
+                        }
+                    }
+                }
+                if (ctl.Count == 0)
+                {
+                    ctl.Add(collection[i]);
+                }
+            }
+            ctl.Sort(SortByIndex);
+            //DataTable存在数据才进行赋值操作
+            if (dt.Rows.Count > 0)
+            {
+                for (int i = 0; i < ctl.Count; i++)
+                {
+                    //如果含有子控件则进行递归调用
+                    if (ctl[i].Controls.Count > 0)
+                        SetFormValue(ctl[i].Controls, dt);
+                    string controlName = ctl[i].Name;
+                    string controlsTag = ctl[i].Tag == null ? "" : ctl[i].Tag.ToString();
+                    //默认给TextBox和Label赋值
+                    if (ctl[i] is TextBox || ctl[i] is Label || ctl[i] is SearchTextBox || ctl[i] is EnterTextBox || ctl[i] is NumericUpDown || ctl[i] is RichTextBox)
+                    {
+                        for (int j = 0; j < dt.Columns.Count; j++)
+                        {
+                            if (controlName.ToUpper() == dt.Columns[j].Caption.ToUpper() || controlsTag.ToUpper() == dt.Columns[j].Caption.ToUpper())
+                            {
+                                //字段含有Status内容的才进行转换
+                                if (controlName.ToUpper().Contains("STATUS") || controlsTag.ToUpper().Contains("STATUS"))
+                                {
+                                    //对审批状态进行判断
+                                    switch (dt.Rows[0][j].ToString().ToUpper())
+                                    {
+                                        case "ENTERING":
+                                            ctl[i].Text = "在录入";
+                                            break;
+                                        case "UNAPPROVED":
+                                            ctl[i].Text = "未批准";
+                                            break;
+                                        case "COMMITED":
+                                            ctl[i].Text = "已提交";
+                                            break;
+                                        case "APPROVE":
+                                            ctl[i].Text = "已批准";
+                                            break;
+                                        case "AUDITED":
+                                            ctl[i].Text = "已审核";
+                                            break;
+                                        case "STARTED":
+                                            ctl[i].Text = "已下放";
+                                            break;
+                                        case "UNCHECK":
+                                            ctl[i].Text = "待检验";
+                                            break;
+                                        case "CHECKING":
+                                            ctl[i].Text = "检验中";
+                                            break;
+                                        default:
+                                            ctl[i].Text = dt.Rows[0][j].ToString();
+                                            break;
+                                    }
+                                }
+                                else
+                                    ctl[i].Text = dt.Rows[0][j].ToString();
+                            }
+                        }
+                    }
+                    //对封装在GroupBox的和Panel的控件进行批量赋值
+                    if (ctl[i] is GroupBox || ctl[i] is Panel)
+                    {
+                        for (int j = 0; j < ctl[i].Controls.Count; j++)
+                        {
+                            controlName = ctl[i].Controls[j].Name;
+                            if (ctl[i].Controls[j] is TextBox || ctl[i].Controls[j] is Label || ctl[i].Controls[j] is SearchTextBox)
+                            {
+                                for (int k = 0; k < dt.Columns.Count; k++)
+                                {
+                                    if (controlName.ToUpper() == dt.Columns[k].Caption.ToUpper())
+                                    {
+                                        ctl[i].Controls[j].Text = dt.Rows[0][k].ToString();
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            //如果没有记录的话,将dt中含有的列的对应值设置为空
+            else
+            {
+                for (int i = 0; i < ctl.Count; i++)
+                {
+                    if (ctl[i] is TextBox || ctl[i] is Label || ctl[i] is SearchTextBox)
+                    {
+                        for (int j = 0; j < dt.Columns.Count; j++)
+                        {
+                            if (ctl[i].Name.ToUpper() == dt.Columns[j].Caption.ToUpper())
+                            {
+                                ctl[i].Text = "";
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+
+        public static string GetScreenSqlCondition(params Control[] Condition)
+        {
+            string condition = "";
+            //用于统计传入的控件的空值数
+            int EmptyControlCount = 0;
+            for (int i = 0; i < Condition.Length; i++)
+            {
+                //如果Text不为空再进行条件的拼接
+                if (Condition[i].Text != "")
+                {
+                    if (Condition[i] is ComboBox)
+                    {
+                        condition += "(" + Condition[i].Tag + " like " + "'%" + (Condition[i] as ComboBox).SelectedValue + "%' )";
+                    }
+                    else
+                    {
+                        condition += "(" + Condition[i].Tag + " like " + "'%" + Condition[i].Text + "%' )";
+                    }
+                    //如果不是最后要判断之后有没有空值的如果有一个Text的值不为空都需要添加and
+                    //添加了一次And之后跳出循环,因为如果后面多项有值会重复添加and
+                    for (int j = i + 1; j < Condition.Length; j++)
+                    {
+                        if (j < Condition.Length)
+                        {
+                            if (Condition[j].Text != "")
+                            {
+                                condition += " and ";
+                                break;
+                            }
+                        }
+                    }
+                }
+                else
+                {
+                    EmptyControlCount = EmptyControlCount + 1;
+                }
+            }
+            //如果所有的控件传入的都是空值则返回也为空
+            if (EmptyControlCount == Condition.Length)
+                return "";
+            else
+                condition = " where " + condition;
+            return condition;
+        }
+
         public static void CreateXml(string iSN, string iTestResult)
         {
             //创建XML文档

+ 43 - 0
FileWatcher/ClickPicBox.Designer.cs

@@ -0,0 +1,43 @@
+namespace FileWatcher
+{
+    partial class ClickPicBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // ClickPicBox
+            // 
+            this.Name = "ClickPicBox";
+            this.Size = new System.Drawing.Size(280, 150);
+            this.ResumeLayout(true);
+
+        }
+
+        #endregion
+    }
+}

+ 43 - 0
FileWatcher/ClickPicBox.cs

@@ -0,0 +1,43 @@
+using System.Windows.Forms;
+
+namespace FileWatcher
+{
+    public partial class ClickPicBox : PictureBox
+    {
+        private string Power1;
+
+        public string Power
+        {
+            get
+            {
+                return Power1;
+            }
+
+            set
+            {
+                Power1 = value;
+            }
+        }
+
+        string AllPower1;
+
+        public string AllPower
+        {
+            get
+            {
+                return AllPower1;
+            }
+
+            set
+            {
+                AllPower1 = value;
+            }
+        }
+
+
+        public ClickPicBox()
+        {
+            InitializeComponent();
+        }
+    }
+}

+ 120 - 0
FileWatcher/ClickPicBox.resx

@@ -0,0 +1,120 @@
+<?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>
+</root>

+ 1 - 1
FileWatcher/DateWeek.Designer.cs

@@ -69,7 +69,7 @@
             this.Name = "DateWeek";
             this.Text = "DateWeek";
             this.Load += new System.EventHandler(this.DateWeek_Load);
-            this.ResumeLayout(false);
+            this.ResumeLayout(true);
             this.PerformLayout();
 
         }

+ 88 - 0
FileWatcher/DbFind.Designer.cs

@@ -0,0 +1,88 @@
+using FileWatcher;
+
+namespace FileWatcher
+{
+    partial class DbFind
+    {
+        /// <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()
+        {
+            this.DbFindGridView = new System.Windows.Forms.DataGridView();
+            this.pagination1 = new FileWatcher.PaginationDbFind();
+            ((System.ComponentModel.ISupportInitialize)(this.DbFindGridView)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // DbFindGridView
+            // 
+            this.DbFindGridView.AllowUserToAddRows = false;
+            this.DbFindGridView.BackgroundColor = System.Drawing.SystemColors.Window;
+            this.DbFindGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.DbFindGridView.Location = new System.Drawing.Point(0, 22);
+            this.DbFindGridView.Name = "DbFindGridView";
+            this.DbFindGridView.ReadOnly = true;
+            this.DbFindGridView.RowTemplate.Height = 23;
+            this.DbFindGridView.Size = new System.Drawing.Size(740, 408);
+            this.DbFindGridView.TabIndex = 0;
+            this.DbFindGridView.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.DbFindGridView_CellDoubleClick);
+            this.DbFindGridView.ColumnWidthChanged += new System.Windows.Forms.DataGridViewColumnEventHandler(this.DbFindGridView_ColumnWidthChanged);
+            this.DbFindGridView.Scroll += new System.Windows.Forms.ScrollEventHandler(this.DbFindGridView_Scroll);
+            this.DbFindGridView.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.DbFindGridView_KeyPress);
+            // 
+            // pagination1
+            // 
+            this.pagination1.AddEnable = false;
+            this.pagination1.Cursor = System.Windows.Forms.Cursors.Arrow;
+            this.pagination1.DeleteEnable = false;
+            this.pagination1.Location = new System.Drawing.Point(0, 432);
+            this.pagination1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
+            this.pagination1.Name = "pagination1";
+            this.pagination1.Size = new System.Drawing.Size(740, 32);
+            this.pagination1.TabIndex = 1;
+            // 
+            // DbFind
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(741, 464);
+            this.Controls.Add(this.pagination1);
+            this.Controls.Add(this.DbFindGridView);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+            this.Name = "DbFind";
+            this.Tag = "ShowDialogWindow";
+            this.Text = "放大镜";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.DbFind_FormClosing);
+            this.Load += new System.EventHandler(this.DbFind_Load);
+            ((System.ComponentModel.ISupportInitialize)(this.DbFindGridView)).EndInit();
+            this.ResumeLayout(true);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.DataGridView DbFindGridView;
+        private PaginationDbFind pagination1;
+    }
+}

+ 296 - 0
FileWatcher/DbFind.cs

@@ -0,0 +1,296 @@
+using System;
+using System.Data;
+using System.Drawing;
+using System.Windows.Forms;
+
+namespace FileWatcher
+{
+    public partial class DbFind : BaseForm
+    {
+        //判断是否配置了DbFind
+        bool IsAbleDbFind;
+
+        //双击选择的工单号
+        string TextBoxValue = "";
+
+        DataHelper dh = SystemInf.dh;
+
+        DataTable dt = new DataTable();
+
+        Control[] ctl;
+        //DBFind查询的字段
+        string MainField;
+        //需要赋值的字段
+        string[] SetValueField;
+        //需要查询的全部字段
+        string SelectField;
+        //发起DbFind请求的窗口
+        string FormName;
+        //是否配置了DBfind
+        string Caller;
+        //需要查询的表
+        string BindTable;
+
+        string Condition = "";
+
+        Control MainControl;
+
+        public bool SuccessReturnData = false;
+
+        int ScrollNewValue = 0;
+
+        public bool IsAbleDbFind1
+        {
+            get
+            {
+                return IsAbleDbFind;
+            }
+            set
+            {
+                IsAbleDbFind = value;
+            }
+        }
+
+        public string TextBoxValue1
+        {
+            get
+            {
+                return TextBoxValue;
+            }
+            set
+            {
+                TextBoxValue = value;
+            }
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="field"></param>
+        /// <param name="setValueField"></param>
+        /// <param name="caller"></param>
+        /// <param name="formname"></param>
+        public DbFind(string field, string tablename, string selectfield, string[] setValueField, string caller, string formname, string condition)
+        {
+            InitializeComponent();
+            DoubleBuffered = true;
+            try
+            {
+                StartPosition = FormStartPosition.CenterParent;
+                MainField = field;
+                FormName = formname;
+                SetValueField = setValueField;
+                Caller = caller;
+                Condition = condition + "";
+                BindTable = tablename;
+                SelectField = selectfield.Replace("#", " as ");
+                //返回一个带有结构的空的DataTable
+                dt = (DataTable)dh.ExecuteSql("select " + SelectField + " from " + tablename + " where ROWNUM<20", "select");
+                //设置DataTable的描述和列名,为了字段赋值
+                selectfield = selectfield.Replace(",", "#");
+                string[] NameAndCapation = selectfield.Split('#');
+                int index = 0;
+                //设置列的描述和名称
+                for (int i = 0; i < dt.Columns.Count; i++)
+                {
+                    dt.Columns[i].Caption = NameAndCapation[index].Trim();
+                    index = index + 1;
+                    dt.Columns[i].ColumnName = NameAndCapation[index].Trim();
+                    index = index + 1;
+                }
+                if (dt != null)
+                {
+                    //先绑定空的结构
+                    DbFindGridView.DataSource = dt;
+                    for (int i = 0; i < DbFindGridView.Columns.Count; i++)
+                    {
+                        DbFindGridView.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
+                    }
+                    //获取查询的字段的拼接语句
+                    pagination1.BindDataToNavigator(DbFindGridView, tablename, SelectField, "ID", caller, Condition == null ? "" : Condition);
+                    IsAbleDbFind = true;
+                }
+            }
+            catch (Exception EB)
+            {
+                Console.WriteLine(EB.Message);
+                IsAbleDbFind = false;
+            }
+        }
+
+        protected override void WndProc(ref Message m)
+        {
+            //拦截双击标题栏、移动窗体的系统消息  
+            if (m.Msg != 0xA3)
+                base.WndProc(ref m);
+        }
+
+        private void DbFind_Load(object sender, EventArgs e)
+        {
+            //用来存放过滤的TextBox的控件
+            ctl = new Control[dt.Columns.Count];
+            //Dock是添加的越后面展示时越前面,所以需要从大到小排放
+            for (int i = dt.Columns.Count - 1; i >= 0; i--)
+            {
+                EnterTextBox etb = new EnterTextBox();
+                etb.Dock = DockStyle.Left;
+                etb.Location = new Point(DbFindGridView.RowHeadersWidth, DbFindGridView.Columns[i].Width);
+                etb.Name = dt.Columns[i].Caption;
+                etb.Tag = dt.Columns[i].Caption;
+                etb.Size = new Size(DbFindGridView.Columns[i].Width, 22);
+                etb.KeyDown += FilterData;
+                this.Controls.Add(etb);
+                //记录这个生成的控件,后续用于拼接条件
+                ctl[i] = etb;
+            }
+            //最后用一个不可编辑的占住头部长度
+            EnterTextBox Head = new EnterTextBox();
+            Head.Name = "PlaceHolder";
+            Head.Enabled = false;
+            Head.Dock = DockStyle.Left;
+            Head.Location = new Point(0, DbFindGridView.RowHeadersWidth);
+            Head.Size = new Size(DbFindGridView.RowHeadersWidth, 22);
+            this.Controls.Add(Head);
+        }
+
+        /// <summary>
+        /// 过滤条件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void FilterData(object sender, KeyEventArgs e)
+        {
+            //筛选数据需要将当前页重置到1
+            //并且手动执行一次刷新
+            if (e.KeyCode == Keys.Enter)
+            {
+                pagination1.Current_Page = 1;
+                pagination1.GetPageData();
+                //所有输入框的条件拼接
+                string filterCondition = BaseUtil.GetScreenSqlCondition(ctl).Replace("where", "").Trim();
+                //拼接条件为空初始条件不为空
+                if (filterCondition == "" && Condition != "")
+                    filterCondition = Condition;
+                //拼接和初始条件都不为空
+                else if (filterCondition != "" && Condition.Trim() != "")
+                    filterCondition = filterCondition + " and " + Condition;
+                pagination1.BindDataToNavigator(DbFindGridView, BindTable, SelectField, "ID", Caller, filterCondition);
+            }
+        }
+
+        //给打开窗体的对应字段赋值
+        private void DbFindGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
+        {
+            if (e.RowIndex >= 0)
+            {
+                FormCollection fmCollection = Application.OpenForms;
+                ControlCollection controls = (ControlCollection)fmCollection[FormName].Controls;
+                try
+                {
+                    //先判断DataTable里面是否有这个字段,然后从打开的窗口里面去获取到这个Form,从Form中的指定Panel获取到指定字段的控件
+                    for (int i = 0; i < dt.Columns.Count; i++)
+                    {
+                        fillControl(e, i, fmCollection[FormName]);
+                    }
+                    //发起DBFind的控件
+                    SuccessReturnData = true;
+                    if (MainControl is MaCodeSearchTextBox)
+                    {
+                        MaCodeSearchTextBox ctl = (MainControl as MaCodeSearchTextBox);
+                        ctl.GetData(true);
+                    }
+                    if (MainControl is SearchTextBox)
+                    {
+                        SearchTextBox ctl = (MainControl as SearchTextBox);
+                        ctl.GetData();
+                    }
+                    MainControl.Focus();
+                }
+                catch (Exception ea)
+                {
+                    SuccessReturnData = false;
+                }
+                dt = (DataTable)DbFindGridView.DataSource;
+                for (int i = 0; i < dt.Columns.Count; i++)
+                {
+                    if (MainControl.Name == dt.Columns[i].Caption)
+                    {
+                        TextBoxValue = dt.Rows[e.RowIndex][i].ToString();
+                        break;
+                    }
+                }
+                Dispose();
+                Close();
+            }
+        }
+
+
+        private void fillControl(DataGridViewCellEventArgs e, int i, Control ct)
+        {
+            for (int j = 0; j < SetValueField.Length; j++)
+            {
+                if (ct.Controls.Count > 0 && ct.Name.ToString() != SetValueField[j])
+                {
+                    Control.ControlCollection controls = ct.Controls;
+                    for (int k = 0; k < ct.Controls.Count; k++)
+                    {
+                        fillControl(e, i, controls[k]);
+                    }
+                }
+                else
+                {
+                    if (ct.Name == MainField)
+                    {
+                        MainControl = ct;
+                    }
+                    if ((SetValueField[j] == dt.Columns[i].Caption || SetValueField[j] == dt.Columns[i].ColumnName || SetValueField[j].Contains(dt.Columns[i].Caption) || (ct != null && ct.Tag != null && ct.Tag.ToString() == dt.Columns[i].Caption)) && ct.Name.ToString().ToUpper() == SetValueField[j].ToUpper())
+                        ct.Text = DbFindGridView.Rows[e.RowIndex].Cells[dt.Columns[i].ColumnName].Value.ToString();
+                }
+            }
+        }
+
+        //按下Esc键的时候关闭当前的界面,用于DbFind
+        private void DbFindGridView_KeyPress(object sender, KeyPressEventArgs e)
+        {
+            if (e.KeyChar == (char)Keys.Escape)
+            {
+                Dispose();
+                Close();
+            }
+        }
+
+        //列宽发生变化的时候TextBox的宽度也发生变化
+        private void DbFindGridView_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
+        {
+            if (ctl != null)
+                ctl[DbFindGridView.Columns.IndexOf(e.Column)].Width = e.Column.Width;
+        }
+
+        private void DbFindGridView_Scroll(object sender, ScrollEventArgs e)
+        {
+            //结合已拖动的长度和列宽计算此列当前展示的长度
+            ScrollNewValue = e.NewValue;
+            if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
+            {
+                int ColumnWidth = 0;
+                for (int i = 0; i < dt.Columns.Count; i++)
+                {
+                    ColumnWidth += DbFindGridView.Columns[i].Width;
+                    //如果有列被完全遮蔽,设置对应的输入框宽度为0
+                    if (ColumnWidth < ScrollNewValue)
+                        Controls[dt.Columns[i].Caption].Width = 0;
+                    else if (ColumnWidth > ScrollNewValue)
+                    {
+                        Controls[dt.Columns[i].Caption].Width = ColumnWidth - ScrollNewValue;
+                        break;
+                    }
+                }
+            }
+        }
+
+        private void DbFind_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            dh.Dispose();
+        }
+    }
+}

+ 120 - 0
FileWatcher/DbFind.resx

@@ -0,0 +1,120 @@
+<?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>
+</root>

+ 45 - 0
FileWatcher/EnterTextBox.Designer.cs

@@ -0,0 +1,45 @@
+namespace FileWatcher
+{
+    partial class EnterTextBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // EnterTextBox
+            // 
+            this.Size = new System.Drawing.Size(196, 28);
+            this.Enter += new System.EventHandler(this.EnterTextBox_Enter);
+            this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.EnterTextBox_KeyPress);
+            this.Leave += new System.EventHandler(this.EnterTextBox_Leave);
+            this.ResumeLayout(true);
+
+        }
+
+        #endregion
+    }
+}

+ 101 - 0
FileWatcher/EnterTextBox.cs

@@ -0,0 +1,101 @@
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+
+namespace FileWatcher
+{
+    public partial class EnterTextBox : TextBox
+    {
+        //传值的备用字符串
+        private string ID1;
+        private string Power1;
+        private string str;
+        private string str1;
+        private string str2;
+        /// <summary>
+        /// 设置锁定字段
+        /// </summary>
+        string AllPower1;
+
+        public override string Text
+        {
+            get
+            {
+                return base.Text.Trim();
+            }
+
+            set
+            {
+                base.Text = value;
+            }
+        }
+
+        public string AllPower
+        {
+            get { return AllPower1; }
+            set { AllPower1 = value; }
+        }
+
+        public string ID
+        {
+            get { return ID1; }
+            set { ID1 = value; }
+        }
+
+        public string Str
+        {
+            get { return str; }
+            set { str = value; }
+        }
+
+        public string Str1
+        {
+            get { return str1; }
+            set { str1 = value; }
+        }
+
+        public string Str2
+        {
+            get { return str2; }
+            set { str2 = value; }
+        }
+
+        public string Power
+        {
+            get { return Power1; }
+            set { Power1 = value; }
+        }
+
+        public EnterTextBox()
+        {
+            InitializeComponent();
+            this.KeyDown += EnterTextBox_KeyDown;
+            BackColor = System.Drawing.Color.White;
+        }
+
+        private void EnterTextBox_Enter(object sender, EventArgs e)
+        {
+            this.BackColor = Color.GreenYellow;
+        }
+
+        private void EnterTextBox_Leave(object sender, EventArgs e)
+        {
+            this.BackColor = Color.White;
+        }
+        //手动添加全选功能
+
+        private void EnterTextBox_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.Modifiers.CompareTo(Keys.Control) == 0 && e.KeyCode == Keys.A)
+                this.SelectAll();
+        }
+
+        private void EnterTextBox_KeyPress(object sender, KeyPressEventArgs e)
+        {
+            if (e.KeyChar == System.Convert.ToChar(13))
+            {
+                e.Handled = true;
+            }
+        }
+    }
+}

+ 123 - 0
FileWatcher/EnterTextBox.resx

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 198 - 2
FileWatcher/FileWatcher.csproj

@@ -90,9 +90,9 @@
     <Reference Include="System.Drawing" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Xml" />
-    <Reference Include="UMESDLLService, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
+    <Reference Include="UMESDLLService, Version=1.0.0.3, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>tool\UMESDLLService.dll</HintPath>
+      <HintPath>..\UAS_MesInterface(LGDZ)\bin\Debug\UMESDLLService.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -120,7 +120,19 @@
     <Compile Include="AutoAnalysisXml.Designer.cs">
       <DependentUpon>AutoAnalysisXml.cs</DependentUpon>
     </Compile>
+    <Compile Include="BaseForm.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="BaseForm.Designer.cs">
+      <DependentUpon>BaseForm.cs</DependentUpon>
+    </Compile>
     <Compile Include="BaseUtil.cs" />
+    <Compile Include="ClickPicBox.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="ClickPicBox.Designer.cs">
+      <DependentUpon>ClickPicBox.cs</DependentUpon>
+    </Compile>
     <Compile Include="DataHelper.cs" />
     <Compile Include="DateWeek.cs">
       <SubType>Form</SubType>
@@ -128,6 +140,18 @@
     <Compile Include="DateWeek.Designer.cs">
       <DependentUpon>DateWeek.cs</DependentUpon>
     </Compile>
+    <Compile Include="DbFind.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="DbFind.Designer.cs">
+      <DependentUpon>DbFind.cs</DependentUpon>
+    </Compile>
+    <Compile Include="EnterTextBox.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="EnterTextBox.Designer.cs">
+      <DependentUpon>EnterTextBox.cs</DependentUpon>
+    </Compile>
     <Compile Include="Form2.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -146,6 +170,42 @@
     <Compile Include="Form5.Designer.cs">
       <DependentUpon>Form5.cs</DependentUpon>
     </Compile>
+    <Compile Include="LockCheckBox.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="LockCheckBox.Designer.cs">
+      <DependentUpon>LockCheckBox.cs</DependentUpon>
+    </Compile>
+    <Compile Include="MaCodeSearchTextBox.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="MaCodeSearchTextBox.Designer.cs">
+      <DependentUpon>MaCodeSearchTextBox.cs</DependentUpon>
+    </Compile>
+    <Compile Include="MaCodeTextBox.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="MaCodeTextBox.Designer.cs">
+      <DependentUpon>MaCodeTextBox.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Pagination.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="Pagination.Designer.cs">
+      <DependentUpon>Pagination.cs</DependentUpon>
+    </Compile>
+    <Compile Include="PaginationDbFind.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="PaginationDbFind.Designer.cs">
+      <DependentUpon>PaginationDbFind.cs</DependentUpon>
+    </Compile>
+    <Compile Include="SearchTextBox.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="SearchTextBox.Designer.cs">
+      <DependentUpon>SearchTextBox.cs</DependentUpon>
+    </Compile>
     <Compile Include="SerialPortCombox.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -178,6 +238,7 @@
     <Compile Include="SetLoadingWindow.Designer.cs">
       <DependentUpon>SetLoadingWindow.cs</DependentUpon>
     </Compile>
+    <Compile Include="SystemInf.cs" />
     <Compile Include="TcpServer.cs" />
     <Compile Include="测试记录解析.cs">
       <SubType>Form</SubType>
@@ -217,9 +278,21 @@
     <EmbeddedResource Include="AutoAnalysisXml.resx">
       <DependentUpon>AutoAnalysisXml.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="BaseForm.resx">
+      <DependentUpon>BaseForm.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="ClickPicBox.resx">
+      <DependentUpon>ClickPicBox.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="DateWeek.resx">
       <DependentUpon>DateWeek.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="DbFind.resx">
+      <DependentUpon>DbFind.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="EnterTextBox.resx">
+      <DependentUpon>EnterTextBox.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="Form2.resx">
       <DependentUpon>Form2.cs</DependentUpon>
     </EmbeddedResource>
@@ -229,6 +302,24 @@
     <EmbeddedResource Include="Form5.resx">
       <DependentUpon>Form5.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="LockCheckBox.resx">
+      <DependentUpon>LockCheckBox.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="MaCodeSearchTextBox.resx">
+      <DependentUpon>MaCodeSearchTextBox.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="MaCodeTextBox.resx">
+      <DependentUpon>MaCodeTextBox.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Pagination.resx">
+      <DependentUpon>Pagination.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="PaginationDbFind.resx">
+      <DependentUpon>PaginationDbFind.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="SearchTextBox.resx">
+      <DependentUpon>SearchTextBox.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="SerialPortCombox.resx">
       <DependentUpon>SerialPortCombox.cs</DependentUpon>
     </EmbeddedResource>
@@ -276,6 +367,111 @@
     </Compile>
   </ItemGroup>
   <ItemGroup>
+    <Content Include="Resources\07.gif" />
+    <Content Include="Resources\0802192135.png" />
+    <Content Include="Resources\15aedb5b-a345-48b6-8b81-784e410d7fd1.png" />
+    <Content Include="Resources\2-0btn_04.png" />
+    <Content Include="Resources\2-0btn_07.png" />
+    <Content Include="Resources\2-0btn_36.png" />
+    <Content Include="Resources\20130711113247276.png" />
+    <Content Include="Resources\46.gif" />
+    <Content Include="Resources\83.gif" />
+    <Content Include="Resources\b473847f-a85b-400e-807a-4875c4c07ff1.png" />
+    <Content Include="Resources\Barcode_48px_1072745_easyicon.net.png" />
+    <Content Include="Resources\bindingNavigatorAddNewItem.Image.png" />
+    <Content Include="Resources\bindingNavigatorDeleteItem.Image.png" />
+    <Content Include="Resources\bindingNavigatorMoveFirstItem.Image.png" />
+    <Content Include="Resources\bindingNavigatorMoveLastItem.Image.png" />
+    <Content Include="Resources\bindingNavigatorMoveNextItem.Image.png" />
+    <Content Include="Resources\bindingNavigatorMovePreviousItem.Image.png" />
+    <Content Include="Resources\box_17.453077699294px_1191579_easyicon.net.png" />
+    <Content Include="Resources\box_26.17961654894px_1191579_easyicon.net.png" />
+    <Content Include="Resources\btncheckoff1.png" />
+    <Content Include="Resources\btncheckoff2.png" />
+    <Content Include="Resources\btncheckoff3.png" />
+    <Content Include="Resources\btncheckoff4.png" />
+    <Content Include="Resources\btncheckoff5.png" />
+    <Content Include="Resources\btncheckoff6.png" />
+    <Content Include="Resources\btncheckon1.png" />
+    <Content Include="Resources\btncheckon2.png" />
+    <Content Include="Resources\btncheckon3.png" />
+    <Content Include="Resources\btncheckon4.png" />
+    <Content Include="Resources\btncheckon5.png" />
+    <Content Include="Resources\btncheckon6.png" />
+    <Content Include="Resources\change_password.png" />
+    <Content Include="Resources\close.png" />
+    <Content Include="Resources\close_16px_558195_easyicon.net.png" />
+    <Content Include="Resources\CLOSE_24px_1115282_easyicon.net.png" />
+    <Content Include="Resources\close_24px_1139093_easyicon.net.png" />
+    <Content Include="Resources\close_24px_1139293_easyicon.net.png" />
+    <Content Include="Resources\close_32px_1181428_easyicon.net.png" />
+    <Content Include="Resources\Close_up_32px_1181430_easyicon.net.png" />
+    <Content Include="Resources\defaulticon.png" />
+    <Content Include="Resources\dialog_close_24px_1173781_easyicon.net.png" />
+    <Content Include="Resources\dialog_error_5_48px_542794_easyicon.net.png" />
+    <Content Include="Resources\down.png" />
+    <Content Include="Resources\download_14.926374650513px_1191613_easyicon.net.png" />
+    <Content Include="Resources\download_17.519713261649px_1200629_easyicon.net %281%29.png" />
+    <Content Include="Resources\download_17.519713261649px_1200629_easyicon.net.png" />
+    <Content Include="Resources\excel.png" />
+    <Content Include="Resources\Excel_2010_16px_1180011_easyicon.net.png" />
+    <Content Include="Resources\Excel_2013_16px_1180012_easyicon.net.png" />
+    <Content Include="Resources\file.png" />
+    <Content Include="Resources\file_24px_1133611_easyicon.net.png" />
+    <Content Include="Resources\file_24px_1175380_easyicon.net.png" />
+    <Content Include="Resources\file_info_64px_1176626_easyicon.net.png" />
+    <Content Include="Resources\file_manager_24px_1145241_easyicon.net.png" />
+    <Content Include="Resources\focus.png" />
+    <Content Include="Resources\gray.png" />
+    <Content Include="Resources\highlight.png" />
+    <Content Include="Resources\icon_title.png" />
+    <Content Include="Resources\Image1.bmp" />
+    <Content Include="Resources\Light.png" />
+    <Content Include="Resources\LoadingError.gif" />
+    <Content Include="Resources\LoadingFormat.gif" />
+    <Content Include="Resources\Lock24px.png" />
+    <Content Include="Resources\lock_lock_24px.png" />
+    <Content Include="Resources\lock_open_24px.png" />
+    <Content Include="Resources\LoginBG.jpg" />
+    <Content Include="Resources\Logout_32px_581264_easyicon.net.png" />
+    <Content Include="Resources\minus.gif" />
+    <Content Include="Resources\normal.png" />
+    <Content Include="Resources\notice_text_editor_16px_11373_easyicon.net.png" />
+    <Content Include="Resources\OQC作业.png" />
+    <Content Include="Resources\People_48px_500819_easyicon.net.png" />
+    <Content Include="Resources\plus.gif" />
+    <Content Include="Resources\pluslogo.png" />
+    <Content Include="Resources\preview_16px_25980_easyicon.net.png" />
+    <Content Include="Resources\pwd.png" />
+    <Content Include="Resources\refresh.png" />
+    <Content Include="Resources\search_16px_1202802_easyicon.net.png" />
+    <Content Include="Resources\Sound\1454.wav" />
+    <Content Include="Resources\Sound\3291.wav" />
+    <Content Include="Resources\Sound\3853.wav" />
+    <Content Include="Resources\Sound\4082.wav" />
+    <Content Include="Resources\Sound\5185.wav" />
+    <Content Include="Resources\Sound\8378.wav" />
+    <Content Include="Resources\Sound\9865.wav" />
+    <Content Include="Resources\Sound\Windows Background.wav" />
+    <Content Include="Resources\timg.jpg" />
+    <Content Include="Resources\two_arrow_left.png" />
+    <Content Include="Resources\two_arrow_right.png" />
+    <Content Include="Resources\uas_blue.png" />
+    <Content Include="Resources\updating.gif" />
+    <Content Include="Resources\upload_17.459649122807px_1200703_easyicon.net %281%29.png" />
+    <Content Include="Resources\upload_17.459649122807px_1200703_easyicon.net.png" />
+    <Content Include="Resources\upload_icon1.png" />
+    <Content Include="Resources\White-side.png" />
+    <Content Include="Resources\WhiteImage.png" />
+    <Content Include="Resources\write_15.893687707641px_1181413_easyicon.net.png" />
+    <Content Include="Resources\zxing_android_code_48px_1107946_easyicon.net.png" />
+    <Content Include="Resources\产线作业.png" />
+    <Content Include="Resources\人员管理.png" />
+    <Content Include="Resources\仓库作业.png" />
+    <Content Include="Resources\包装作业.png" />
+    <Content Include="Resources\查询分析.png" />
+    <Content Include="Resources\特殊作业.png" />
+    <Content Include="Resources\系统设置.png" />
     <Content Include="tool\Oracle.ManagedDataAccess.dll" />
     <Content Include="tool\XlsCrt2.DLL" />
     <Content Include="tool\XlsxCrt.dll" />

+ 1 - 1
FileWatcher/Form1.Designer.cs

@@ -96,7 +96,7 @@
             this.Text = "Form1";
             this.Load += new System.EventHandler(this.Form1_Load);
             ((System.ComponentModel.ISupportInitialize)(this.FileWatcher)).EndInit();
-            this.ResumeLayout(false);
+            this.ResumeLayout(true);
             this.PerformLayout();
 
         }

+ 2 - 2
FileWatcher/Form2.Designer.cs

@@ -89,9 +89,9 @@
             this.Text = "Form2";
             this.TopMost = true;
             this.Load += new System.EventHandler(this.Form2_Load);
-            this.panel1.ResumeLayout(false);
+            this.panel1.ResumeLayout(true);
             this.panel1.PerformLayout();
-            this.ResumeLayout(false);
+            this.ResumeLayout(true);
 
         }
 

+ 1 - 1
FileWatcher/Form4.Designer.cs

@@ -198,7 +198,7 @@
             this.Text = "Form4";
             this.Load += new System.EventHandler(this.Form4_Load);
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
-            this.ResumeLayout(false);
+            this.ResumeLayout(true);
             this.PerformLayout();
 
         }

+ 1 - 1
FileWatcher/Form5.Designer.cs

@@ -131,7 +131,7 @@
             this.Name = "Form5";
             this.Text = "Form4";
             this.Load += new System.EventHandler(this.Form4_Load);
-            this.ResumeLayout(false);
+            this.ResumeLayout(true);
             this.PerformLayout();
 
         }

+ 5 - 38
FileWatcher/Form5.cs

@@ -53,44 +53,11 @@ namespace FileWatcher
 
         private void Form4_Load(object sender, EventArgs e)
         {
-            ExportRangeAsJpg();
-            return;
-            CheckForIllegalCrossThreadCalls = false;
-            //Workbook workbook = new Workbook();
-            //workbook.LoadFromFile(@"C:\Users\callm\Desktop\新建文件夹\99001-91A1C2079.xls");
-            //workbook.ConverterSetting.JPEGQuality = 100;
-            //workbook.ConverterSetting.XDpi = 600;
-            //workbook.ConverterSetting.YDpi = 600;
-            //List<Worksheet> list = new List<Worksheet>();
-            //List<string> filename = new List<string>();
-            //OperatResult.AppendText("一共Sheet: " + workbook.Worksheets.Count + "\n");
-            //try
-            //{
-            //    IFont font1 = workbook.CreateFont();
-            //    for (int i = 0; i < workbook.Worksheets.Count; i++)
-            //    {
-            //        OperatResult.AppendText("正在解析Sheet" + workbook.Worksheets[i].Name + "\n");
-            //        for (int k = 0; k < workbook.Worksheets[i].TextBoxes.Count; k++)
-            //        {
-            //            if (workbook.Worksheets[i].TextBoxes[k].RichText.Text.Length > 1)
-            //            {
-            //                workbook.Worksheets[i].TextBoxes[k].RichText.Text = workbook.Worksheets[i].TextBoxes[k].RichText.Text;
-            //            }
-            //        }
-            //        Workbook bw = new Workbook();
-            //        Worksheet she = bw.CreateEmptySheet();
-            //        she.Name = workbook.Worksheets[i].Name;
-            //        she.CopyFrom(workbook.Worksheets[i]);
-            //        var myThread = new Thread(() => SaveFileToJPG(she));
-            //        myThread.Start();
-            //        //filename.Add(she.Name + ".jpg");
-            //    }
-            //}
-            //catch (Exception ex)
-            //{
-            //    OperatResult.AppendText(ex.Message + "\n");
-            //}
-
+            UMESDLLService.MESHelper mes=new UMESDLLService.MESHelper();
+            string str = "";
+            string str1 = "";
+            mes.GetMobileAllInfo("BPX0810001PA", out str, out str1);
+            Console.WriteLine(  str);
         }
 
         //private void SaveFileToJPG(Worksheet sheet)

+ 42 - 0
FileWatcher/LockCheckBox.Designer.cs

@@ -0,0 +1,42 @@
+namespace FileWatcher { 
+    partial class LockCheckBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // LockCheckBox
+            // 
+            this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.CheckStateChanged += new System.EventHandler(this.LockCheckBox_CheckStateChanged);
+            this.ResumeLayout(true);
+
+        }
+
+        #endregion
+    }
+}

+ 75 - 0
FileWatcher/LockCheckBox.cs

@@ -0,0 +1,75 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+
+namespace FileWatcher
+{
+    public partial class LockCheckBox : CheckBox
+    {
+        /// <summary>
+        /// 存放工单的控件
+        /// </summary>
+        MaCodeSearchTextBox MaCtl;
+
+        bool LeaveEvent1;
+
+        public bool LeaveEvent
+        {
+            get
+            {
+                return LeaveEvent1;
+            }
+
+            set
+            {
+                LeaveEvent1 = value;
+            }
+        }
+
+        public LockCheckBox()
+        {
+            InitializeComponent();
+        }
+
+        public void GetMakeCodeCtl(MaCodeSearchTextBox ctl)
+        {
+            MaCtl = ctl;
+        }
+
+        private void LockCheckBox_CheckStateChanged(object sender, EventArgs e)
+        {
+            if (Checked)
+            {
+                if (MaCtl.Text != "")
+                {
+                    string ErrorMessage;
+                    //if (LogicHandler.CheckMakeStatus(MaCtl.Text, out ErrorMessage))
+                    //    MaCtl.Enabled = false;
+                    //else
+                    //{
+                    //    Checked = false;
+                    //    MaCtl.Text = "";
+                    //    BaseUtil.ShowError(ErrorMessage);
+                    //}
+                }
+                else
+                {
+                    Checked = false;
+                    MaCtl.Text = "";
+                    BaseUtil.ShowError("工单号不能为空");
+                }
+            }
+            else
+            {
+                MaCtl.Enabled = true;
+                MaCtl.Focus();
+            }
+        }
+    }
+}

+ 123 - 0
FileWatcher/LockCheckBox.resx

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 1 - 1
FileWatcher/Login.Designer.cs

@@ -146,7 +146,7 @@
             this.Name = "Login";
             this.Text = "Login";
             this.Load += new System.EventHandler(this.Login_Load);
-            this.ResumeLayout(false);
+            this.ResumeLayout(true);
             this.PerformLayout();
 
         }

+ 89 - 0
FileWatcher/MaCodeSearchTextBox.Designer.cs

@@ -0,0 +1,89 @@
+namespace FileWatcher
+{
+    partial class MaCodeSearchTextBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.Search_Icon = new ClickPicBox();
+            this.TextBox = new MaCodeTextBox();
+            ((System.ComponentModel.ISupportInitialize)(this.Search_Icon)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // Search_Icon
+            // 
+            this.Search_Icon.AllPower = null;
+            this.Search_Icon.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.Search_Icon.Dock = System.Windows.Forms.DockStyle.Right;
+            this.Search_Icon.Image = global::FileWatcher.Properties.Resources.search_16px_1202802_easyicon_net;
+            this.Search_Icon.Location = new System.Drawing.Point(183, 0);
+            this.Search_Icon.Name = "Search_Icon";
+            this.Search_Icon.Power = "";
+            this.Search_Icon.Size = new System.Drawing.Size(21, 25);
+            this.Search_Icon.TabIndex = 1;
+            this.Search_Icon.TabStop = false;
+            this.Search_Icon.Click += new System.EventHandler(this.Search_Icon_Click);
+            // 
+            // TextBox
+            // 
+            this.TextBox.AllPower = null;
+            this.TextBox.BackColor = System.Drawing.Color.White;
+            this.TextBox.Dock = System.Windows.Forms.DockStyle.Left;
+            this.TextBox.ID = null;
+            this.TextBox.Location = new System.Drawing.Point(0, 0);
+            this.TextBox.Lock = false;
+            this.TextBox.Name = "TextBox";
+            this.TextBox.Power = null;
+            this.TextBox.Size = new System.Drawing.Size(178, 21);
+            this.TextBox.Str = null;
+            this.TextBox.Str1 = null;
+            this.TextBox.Str2 = null;
+            this.TextBox.TabIndex = 0;
+            this.TextBox.TextChanged += new System.EventHandler(this.TextBox_TextChanged);
+            this.TextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TextBox_KeyDown);
+            this.TextBox.Leave += new System.EventHandler(this.TextBox_Leave);
+            // 
+            // MaCodeSearchTextBox
+            // 
+            this.Controls.Add(this.Search_Icon);
+            this.Controls.Add(this.TextBox);
+            this.Name = "MaCodeSearchTextBox";
+            this.Size = new System.Drawing.Size(204, 25);
+            this.Load += new System.EventHandler(this.SearchTextBox_Load);
+            this.SizeChanged += new System.EventHandler(this.SearchTextBox_SizeChanged);
+            this.Leave += new System.EventHandler(this.MaCodeSearchTextBox_Leave);
+            ((System.ComponentModel.ISupportInitialize)(this.Search_Icon)).EndInit();
+            this.ResumeLayout(true);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private ClickPicBox Search_Icon;
+        public MaCodeTextBox TextBox;
+    }
+}

+ 358 - 0
FileWatcher/MaCodeSearchTextBox.cs

@@ -0,0 +1,358 @@
+using System;
+using System.Data;
+using System.Windows.Forms;
+
+namespace FileWatcher
+{
+    public partial class MaCodeSearchTextBox : UserControl
+    {
+        #region 构造函数
+        public MaCodeSearchTextBox()
+        {
+            InitializeComponent();
+        }
+        #endregion
+
+        #region 变量
+        /// <summary>
+        /// 是否通过Leave事件找到数据
+        /// </summary>
+        public bool LeaveFindData;
+        /// <summary>
+        /// DBFind窗体弹出的标题
+        /// </summary>
+        private string DBTitle1;
+        /// <summary>
+        /// 输入框是否可编辑
+        /// </summary>
+        private bool TextBoxEnable1;
+        /// <summary>
+        /// 业务逻辑的标识符
+        /// </summary>
+        private string caller;
+        /// <summary>
+        /// 发起DbFind的窗体
+        /// </summary>
+        private string formName;
+        /// <summary>
+        /// 需要赋值的字段
+        /// </summary>
+        private string[] setValueField;
+        /// <summary>
+        /// 初始的筛选条件
+        /// </summary>
+        private string condition;
+        /// <summary>
+        /// 权限标识
+        /// </summary>
+        private string Power1;
+        /// <summary>
+        /// 查询的表名
+        /// </summary>
+        private string tableName;
+        /// <summary>
+        /// 查询的字段
+        /// </summary>
+        private string selectField;
+
+        /// <summary>
+        /// 设置绑定的CheckBox
+        /// </summary>
+        LockCheckBox LockCheckBox;
+
+        public delegate void DBSourceChange(object sender, EventArgs e);
+
+        public event DBSourceChange DbChange;
+
+        DataTable dt = new DataTable();
+
+        DbFind db;
+
+        DataTable ReturnData1;
+
+        public override string Text
+        {
+            get
+            {
+                return TextBox.Text.ToUpper();
+            }
+            set
+            {
+                TextBox.Text = value;
+            }
+        }
+
+        string AllPower1;
+
+        public string AllPower
+        {
+            get
+            {
+                return AllPower1;
+            }
+
+            set
+            {
+                AllPower1 = value;
+            }
+        }
+
+        public string Caller
+        {
+            get
+            {
+                return caller;
+            }
+
+            set
+            {
+                caller = value;
+            }
+        }
+
+        public string FormName
+        {
+            get
+            {
+                return formName;
+            }
+
+            set
+            {
+                formName = value;
+            }
+        }
+
+        public string[] SetValueField
+        {
+            get
+            {
+                return setValueField;
+            }
+
+            set
+            {
+                setValueField = value;
+            }
+        }
+
+        public string Condition
+        {
+            get
+            {
+                return condition;
+            }
+
+            set
+            {
+                condition = value;
+            }
+        }
+
+        public string TableName
+        {
+            get
+            {
+                return tableName;
+            }
+
+            set
+            {
+                tableName = value;
+            }
+        }
+
+        public string SelectField
+        {
+            get
+            {
+                return selectField;
+            }
+
+            set
+            {
+                selectField = value;
+            }
+        }
+
+        public string Power
+        {
+            get
+            {
+                return Power1;
+            }
+
+            set
+            {
+                Power1 = value;
+            }
+        }
+
+        public string DBTitle
+        {
+            get
+            {
+                return DBTitle1;
+            }
+
+            set
+            {
+                DBTitle1 = value;
+            }
+        }
+
+        public bool TextBoxEnable
+        {
+            get
+            {
+                return TextBoxEnable1;
+            }
+
+            set
+            {
+                TextBoxEnable1 = value;
+            }
+        }
+
+        public DataTable ReturnData
+        {
+            get
+            {
+                return ReturnData1;
+            }
+
+            set
+            {
+                ReturnData1 = value;
+            }
+        }
+        #endregion
+
+        #region 自定义事件
+        public delegate void OnTextChange(object sender, EventArgs e);
+        //定义事件
+        public event OnTextChange UserControlTextChanged;
+        //定义委托
+        public delegate void Icon_Click(object sender, EventArgs e);
+        /// <summary>
+        /// 图标点击事件
+        /// </summary>
+        public event Icon_Click SearchIconClick;
+        #endregion
+        //定义委托
+
+        private void TextBox_TextChanged(object sender, EventArgs e)
+        {
+            UserControlTextChanged?.Invoke(sender, new EventArgs());
+        }
+
+        //Key先发起失去焦点事件,在执行用户自定义的事件
+        private void TextBox_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+                GetData(true);
+        }
+
+        public void SetLockCheckBox(LockCheckBox ctl)
+        {
+            LockCheckBox = ctl;
+        }
+
+        public void GetData(bool LeaveOrEnter)
+        {
+            DataHelper dh = SystemInf.dh;
+            string sql = "";
+            //将查询到的结果返回界面
+            if (TextBox.Text != "")
+            {
+                sql = "select " + BaseUtil.AddField(setValueField) + " from " + tableName + " where " + Name + "='" + TextBox.Text.ToUpper() + "'";
+            }
+            else if (db != null)
+            {
+                sql = "select " + BaseUtil.AddField(setValueField) + " from " + tableName + " where " + Name + "='" + db.TextBoxValue1 + "'";
+            }
+            if (condition != null)
+            {
+                sql += " and " + condition;
+            }
+            try
+            {
+                dt = (DataTable)dh.ExecuteSql(sql, "select");
+                if (dt.Rows.Count > 0)
+                    ReturnDataToFrom();
+            }
+            catch (Exception e)
+            {
+               
+            }
+            if (LeaveOrEnter || TextBox.Text != "")
+                LockCheckBox.Checked = true;
+
+        }
+
+        private void fillControl(int i, Control ct)
+        {
+            for (int j = 0; j < setValueField.Length; j++)
+            {
+                if (ct.Controls.Count > 0 && ct.Name.ToString() != setValueField[j])
+                {
+                    Control.ControlCollection controls = ct.Controls;
+                    for (int k = 0; k < ct.Controls.Count; k++)
+                    {
+                        fillControl(i, controls[k]);
+                    }
+                }
+                else
+                {
+                    if ((setValueField[j] == dt.Columns[i].Caption.ToLower() || setValueField[j] == dt.Columns[i].ColumnName.ToLower() || setValueField[j].Contains(dt.Columns[i].Caption.ToLower()) || (ct != null && ct.Tag != null && ct.Tag.ToString() == dt.Columns[i].Caption.ToLower())) && ct.Name.ToString() == setValueField[j])
+                        ct.Text = dt.Rows[0][dt.Columns[i].ColumnName].ToString();
+                }
+            }
+        }
+
+        private void Search_Icon_Click(object sender, EventArgs e)
+        {
+            SearchIconClick?.Invoke(sender, new EventArgs());
+            db = new DbFind(Name, tableName, selectField, setValueField, caller, formName, condition);
+            db.Text = DBTitle1;
+            if (db.IsAbleDbFind1)
+            {
+                db.ShowDialog();
+                GetData(true);
+            }
+            else
+            {
+                MessageBox.Show("该字段未配置DbFind", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+            }
+        }
+
+        private void ReturnDataToFrom()
+        {
+            ReturnData1 = dt;
+            DbChange?.Invoke(new object(), new EventArgs());
+        }
+
+        public void TextBox_Leave(object sender, EventArgs e)
+        {
+            //GetData(false);
+        }
+
+        private void SearchTextBox_Load(object sender, EventArgs e)
+        {
+            if (!TextBoxEnable1)
+                TextBox.BackColor = System.Drawing.Color.White;
+            TextBox.Enabled = TextBoxEnable1;
+        }
+
+        private void SearchTextBox_SizeChanged(object sender, EventArgs e)
+        {
+            TextBox.Width = this.Width - Search_Icon.Width - 3;
+        }
+
+        private void MaCodeSearchTextBox_Leave(object sender, EventArgs e)
+        {
+            if (TextBox.Text != "")
+                GetData(false);
+        }
+    }
+}

+ 120 - 0
FileWatcher/MaCodeSearchTextBox.resx

@@ -0,0 +1,120 @@
+<?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>
+</root>

+ 45 - 0
FileWatcher/MaCodeTextBox.Designer.cs

@@ -0,0 +1,45 @@
+namespace FileWatcher
+{
+    partial class MaCodeTextBox
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.SuspendLayout();
+            // 
+            // MaCodeTextBox
+            // 
+            this.Size = new System.Drawing.Size(196, 25);
+            this.Enter += new System.EventHandler(this.EnterTextBox_Enter);
+            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MaCodeTextBox_KeyDown);
+            this.Leave += new System.EventHandler(this.EnterTextBox_Leave);
+            this.ResumeLayout(true);
+
+        }
+
+        #endregion
+    }
+}

+ 87 - 0
FileWatcher/MaCodeTextBox.cs

@@ -0,0 +1,87 @@
+using System;
+using System.Drawing;
+using System.Windows.Forms;
+
+namespace FileWatcher
+{
+    public partial class MaCodeTextBox : TextBox
+    {
+        //传值的备用字符串
+        private string ID1;
+        private string Power1;
+        private string str;
+        private string str1;
+        private string str2;
+        /// <summary>
+        /// 设置锁定字段
+        /// </summary>
+        private bool Lock1;
+        string AllPower1;
+
+        public string AllPower
+        {
+            get { return AllPower1; }
+            set { AllPower1 = value; }
+        }
+
+        public string ID
+        {
+            get { return ID1; }
+            set { ID1 = value; }
+        }
+
+        public string Str
+        {
+            get { return str; }
+            set { str = value; }
+        }
+
+        public string Str1
+        {
+            get { return str1; }
+            set { str1 = value; }
+        }
+
+        public string Str2
+        {
+            get { return str2; }
+            set { str2 = value; }
+        }
+
+        public string Power
+        {
+            get { return Power1; }
+            set { Power1 = value; }
+        }
+
+        public bool Lock
+        {
+            get { return Lock1; }
+            set { Lock1 = value; }
+        }
+
+        public MaCodeTextBox()
+        {
+            InitializeComponent();
+            this.KeyDown += MaCodeTextBox_KeyDown;
+            BackColor = System.Drawing.Color.White;
+        }
+
+        private void EnterTextBox_Enter(object sender, EventArgs e)
+        {
+            this.BackColor = Color.GreenYellow;
+        }
+
+        private void EnterTextBox_Leave(object sender, EventArgs e)
+        {
+            this.BackColor = Color.White;
+        }
+
+        //手动添加全选功能
+        private void MaCodeTextBox_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.Modifiers.CompareTo(Keys.Control) == 0 && e.KeyCode == Keys.A)
+                this.SelectAll();
+        }
+    }
+}

+ 123 - 0
FileWatcher/MaCodeTextBox.resx

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>False</value>
+  </metadata>
+</root>

+ 322 - 0
FileWatcher/Pagination.Designer.cs

@@ -0,0 +1,322 @@
+namespace FileWatcher
+{
+    partial class Pagination
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.ShowItemsNum = new System.Windows.Forms.ComboBox();
+            this.UpLoadData = new FileWatcher.ClickPicBox();
+            this.DownLoadTemplet = new FileWatcher.ClickPicBox();
+            this.Add = new FileWatcher.ClickPicBox();
+            this.Delete = new FileWatcher.ClickPicBox();
+            this.ExportExcel = new FileWatcher.ClickPicBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.TotalPage = new System.Windows.Forms.Label();
+            this.CurrentPage = new System.Windows.Forms.TextBox();
+            this.PreviousPage = new FileWatcher.ClickPicBox();
+            this.LastPage = new FileWatcher.ClickPicBox();
+            this.NextPage = new FileWatcher.ClickPicBox();
+            this.FirstPage = new FileWatcher.ClickPicBox();
+            this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
+            this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
+            this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.panel1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.UpLoadData)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.DownLoadTemplet)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.Add)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.Delete)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ExportExcel)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.PreviousPage)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.LastPage)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.NextPage)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.FirstPage)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // panel1
+            // 
+            this.panel1.BackColor = System.Drawing.SystemColors.Control;
+            this.panel1.Controls.Add(this.ShowItemsNum);
+            this.panel1.Controls.Add(this.UpLoadData);
+            this.panel1.Controls.Add(this.DownLoadTemplet);
+            this.panel1.Controls.Add(this.Add);
+            this.panel1.Controls.Add(this.Delete);
+            this.panel1.Controls.Add(this.ExportExcel);
+            this.panel1.Controls.Add(this.label2);
+            this.panel1.Controls.Add(this.TotalPage);
+            this.panel1.Controls.Add(this.CurrentPage);
+            this.panel1.Controls.Add(this.PreviousPage);
+            this.panel1.Controls.Add(this.LastPage);
+            this.panel1.Controls.Add(this.NextPage);
+            this.panel1.Controls.Add(this.FirstPage);
+            this.panel1.Cursor = System.Windows.Forms.Cursors.Default;
+            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel1.Location = new System.Drawing.Point(0, 0);
+            this.panel1.Margin = new System.Windows.Forms.Padding(4);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(724, 40);
+            this.panel1.TabIndex = 0;
+            // 
+            // ShowItemsNum
+            // 
+            this.ShowItemsNum.FormattingEnabled = true;
+            this.ShowItemsNum.Items.AddRange(new object[] {
+            "40",
+            "35",
+            "30",
+            "25",
+            "20",
+            "15",
+            "10",
+            "5"});
+            this.ShowItemsNum.Location = new System.Drawing.Point(364, 8);
+            this.ShowItemsNum.Margin = new System.Windows.Forms.Padding(4);
+            this.ShowItemsNum.Name = "ShowItemsNum";
+            this.ShowItemsNum.Size = new System.Drawing.Size(65, 23);
+            this.ShowItemsNum.TabIndex = 13;
+            this.ShowItemsNum.Text = "20";
+            this.ShowItemsNum.SelectedValueChanged += new System.EventHandler(this.ShowItemsNum_SelectedValueChanged);
+            // 
+            // UpLoadData
+            // 
+            this.UpLoadData.AllPower = null;
+            this.UpLoadData.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.UpLoadData.Image = global::FileWatcher.Properties.Resources.upload_icon1;
+            this.UpLoadData.Location = new System.Drawing.Point(628, 10);
+            this.UpLoadData.Margin = new System.Windows.Forms.Padding(4);
+            this.UpLoadData.Name = "UpLoadData";
+            this.UpLoadData.Power = null;
+            this.UpLoadData.Size = new System.Drawing.Size(21, 20);
+            this.UpLoadData.TabIndex = 12;
+            this.UpLoadData.TabStop = false;
+            this.UpLoadData.Click += new System.EventHandler(this.UpLoadData_Click);
+            // 
+            // DownLoadTemplet
+            // 
+            this.DownLoadTemplet.AllPower = null;
+            this.DownLoadTemplet.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.DownLoadTemplet.Image = global::FileWatcher.Properties.Resources.download_14_926374650513px_1191613_easyicon_net;
+            this.DownLoadTemplet.Location = new System.Drawing.Point(580, 10);
+            this.DownLoadTemplet.Margin = new System.Windows.Forms.Padding(4);
+            this.DownLoadTemplet.Name = "DownLoadTemplet";
+            this.DownLoadTemplet.Power = null;
+            this.DownLoadTemplet.Size = new System.Drawing.Size(21, 20);
+            this.DownLoadTemplet.TabIndex = 11;
+            this.DownLoadTemplet.TabStop = false;
+            this.DownLoadTemplet.Click += new System.EventHandler(this.DownLoadTemplet_Click);
+            // 
+            // Add
+            // 
+            this.Add.AllPower = null;
+            this.Add.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.Add.Image = global::FileWatcher.Properties.Resources.preview_16px_25980_easyicon_net;
+            this.Add.Location = new System.Drawing.Point(484, 10);
+            this.Add.Margin = new System.Windows.Forms.Padding(4);
+            this.Add.Name = "Add";
+            this.Add.Power = null;
+            this.Add.Size = new System.Drawing.Size(21, 22);
+            this.Add.TabIndex = 10;
+            this.Add.TabStop = false;
+            this.Add.Click += new System.EventHandler(this.Add_Click);
+            // 
+            // Delete
+            // 
+            this.Delete.AllPower = null;
+            this.Delete.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.Delete.Image = global::FileWatcher.Properties.Resources.bindingNavigatorDeleteItem_Image;
+            this.Delete.Location = new System.Drawing.Point(437, 10);
+            this.Delete.Margin = new System.Windows.Forms.Padding(4);
+            this.Delete.Name = "Delete";
+            this.Delete.Power = null;
+            this.Delete.Size = new System.Drawing.Size(21, 22);
+            this.Delete.TabIndex = 9;
+            this.Delete.TabStop = false;
+            this.Delete.Tag = "IfDelete";
+            this.Delete.Click += new System.EventHandler(this.Delete_Click);
+            // 
+            // ExportExcel
+            // 
+            this.ExportExcel.AllPower = null;
+            this.ExportExcel.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.ExportExcel.Image = global::FileWatcher.Properties.Resources.Excel_2010_16px_1180011_easyicon_net;
+            this.ExportExcel.Location = new System.Drawing.Point(532, 10);
+            this.ExportExcel.Margin = new System.Windows.Forms.Padding(4);
+            this.ExportExcel.Name = "ExportExcel";
+            this.ExportExcel.Power = null;
+            this.ExportExcel.Size = new System.Drawing.Size(21, 22);
+            this.ExportExcel.TabIndex = 8;
+            this.ExportExcel.TabStop = false;
+            this.ExportExcel.Click += new System.EventHandler(this.ExportExcel_Click);
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Cursor = System.Windows.Forms.Cursors.Default;
+            this.label2.Location = new System.Drawing.Point(279, 12);
+            this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(82, 15);
+            this.label2.TabIndex = 6;
+            this.label2.Text = "显示数量:";
+            // 
+            // TotalPage
+            // 
+            this.TotalPage.AutoSize = true;
+            this.TotalPage.Cursor = System.Windows.Forms.Cursors.Default;
+            this.TotalPage.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.TotalPage.Location = new System.Drawing.Point(116, 6);
+            this.TotalPage.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.TotalPage.Name = "TotalPage";
+            this.TotalPage.Size = new System.Drawing.Size(0, 24);
+            this.TotalPage.TabIndex = 5;
+            // 
+            // CurrentPage
+            // 
+            this.CurrentPage.AcceptsReturn = true;
+            this.CurrentPage.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.CurrentPage.Location = new System.Drawing.Point(75, 5);
+            this.CurrentPage.Margin = new System.Windows.Forms.Padding(4);
+            this.CurrentPage.Name = "CurrentPage";
+            this.CurrentPage.Size = new System.Drawing.Size(31, 27);
+            this.CurrentPage.TabIndex = 4;
+            this.CurrentPage.Text = "1";
+            this.CurrentPage.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            this.CurrentPage.KeyDown += new System.Windows.Forms.KeyEventHandler(this.CurrentPage_KeyDown);
+            // 
+            // PreviousPage
+            // 
+            this.PreviousPage.AllPower = null;
+            this.PreviousPage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.PreviousPage.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.PreviousPage.Image = global::FileWatcher.Properties.Resources.bindingNavigatorMovePreviousItem_Image;
+            this.PreviousPage.Location = new System.Drawing.Point(48, 10);
+            this.PreviousPage.Margin = new System.Windows.Forms.Padding(4);
+            this.PreviousPage.Name = "PreviousPage";
+            this.PreviousPage.Power = null;
+            this.PreviousPage.Size = new System.Drawing.Size(20, 19);
+            this.PreviousPage.TabIndex = 3;
+            this.PreviousPage.TabStop = false;
+            this.PreviousPage.Click += new System.EventHandler(this.PreviousPage_Click);
+            // 
+            // LastPage
+            // 
+            this.LastPage.AllPower = null;
+            this.LastPage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.LastPage.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.LastPage.Image = global::FileWatcher.Properties.Resources.bindingNavigatorMoveLastItem_Image;
+            this.LastPage.Location = new System.Drawing.Point(241, 10);
+            this.LastPage.Margin = new System.Windows.Forms.Padding(4);
+            this.LastPage.Name = "LastPage";
+            this.LastPage.Power = null;
+            this.LastPage.Size = new System.Drawing.Size(20, 19);
+            this.LastPage.TabIndex = 2;
+            this.LastPage.TabStop = false;
+            this.LastPage.Click += new System.EventHandler(this.LastPage_Click);
+            // 
+            // NextPage
+            // 
+            this.NextPage.AllPower = null;
+            this.NextPage.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.NextPage.Image = global::FileWatcher.Properties.Resources.bindingNavigatorMoveNextItem_Image;
+            this.NextPage.Location = new System.Drawing.Point(209, 10);
+            this.NextPage.Margin = new System.Windows.Forms.Padding(4, 4, 4, 25);
+            this.NextPage.Name = "NextPage";
+            this.NextPage.Power = null;
+            this.NextPage.Size = new System.Drawing.Size(20, 19);
+            this.NextPage.TabIndex = 1;
+            this.NextPage.TabStop = false;
+            this.NextPage.Click += new System.EventHandler(this.NextPage_Click);
+            // 
+            // FirstPage
+            // 
+            this.FirstPage.AllPower = null;
+            this.FirstPage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.FirstPage.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.FirstPage.Image = global::FileWatcher.Properties.Resources.bindingNavigatorMoveFirstItem_Image;
+            this.FirstPage.Location = new System.Drawing.Point(19, 10);
+            this.FirstPage.Margin = new System.Windows.Forms.Padding(4);
+            this.FirstPage.Name = "FirstPage";
+            this.FirstPage.Power = null;
+            this.FirstPage.Size = new System.Drawing.Size(20, 19);
+            this.FirstPage.TabIndex = 0;
+            this.FirstPage.TabStop = false;
+            this.FirstPage.Click += new System.EventHandler(this.FirstPage_Click);
+            // 
+            // openFileDialog1
+            // 
+            this.openFileDialog1.FileName = "openFileDialog1";
+            // 
+            // Pagination
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.panel1);
+            this.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.Margin = new System.Windows.Forms.Padding(4);
+            this.Name = "Pagination";
+            this.Size = new System.Drawing.Size(724, 40);
+            this.Load += new System.EventHandler(this.Pagination_Load);
+            this.panel1.ResumeLayout(true);
+            this.panel1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.UpLoadData)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.DownLoadTemplet)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.Add)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.Delete)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ExportExcel)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.PreviousPage)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.LastPage)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.NextPage)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.FirstPage)).EndInit();
+            this.ResumeLayout(true);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Panel panel1;
+        private System.Windows.Forms.Label TotalPage;
+        private System.Windows.Forms.TextBox CurrentPage;
+        private ClickPicBox PreviousPage;
+        private ClickPicBox LastPage;
+        private ClickPicBox NextPage;
+        private ClickPicBox FirstPage;
+        private ClickPicBox ExportExcel;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1;
+        private ClickPicBox Add;
+        private ClickPicBox Delete;
+        private ClickPicBox DownLoadTemplet;
+        private ClickPicBox UpLoadData;
+        private System.Windows.Forms.ToolTip toolTip1;
+        private System.Windows.Forms.OpenFileDialog openFileDialog1;
+        private System.Windows.Forms.ComboBox ShowItemsNum;
+    }
+}

+ 354 - 0
FileWatcher/Pagination.cs

@@ -0,0 +1,354 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Windows.Forms;
+
+namespace FileWatcher
+{
+    public partial class Pagination : UserControl
+    {
+        #region 变量
+        //申明一些全局变量用来在函数之间传递参数
+        int PageSize;
+        /// <summary>
+        /// 当前页码
+        /// </summary>
+        public int Current_Page;
+        /// <summary>
+        /// 总页数
+        /// </summary>
+        int TotalPageCount;
+        /// <summary>
+        /// 一页展示的行数
+        /// </summary>
+        int RowCount;
+        /// <summary>
+        /// 主表的ID
+        /// </summary>
+        string Table_ID;
+        /// <summary>
+        /// 查询的表名
+        /// </summary>
+        string TableName;
+        string Caller;
+        /// <summary>
+        /// 查询的字段
+        /// </summary>
+        string Field;
+        /// <summary>
+        /// 需要添加的图像操作列
+        /// </summary>
+        DataGridViewImageColumn dgic = null;
+        string Condition = "";
+        /// <summary>
+        /// 删除按钮是否能够点击
+        /// </summary>
+        bool DeleteEnable1;
+        /// <summary>
+        /// 添加按钮是否能够点击
+        /// </summary>
+        bool AddEnable1;
+        DataGridView Dgv;
+        DataTable dt;
+        DataHelper dh = SystemInf.dh;
+
+        public bool DeleteEnable
+        {
+            get
+            {
+                return DeleteEnable1;
+            }
+
+            set
+            {
+                DeleteEnable1 = value;
+            }
+        }
+
+        public bool AddEnable
+        {
+            get
+            {
+                return AddEnable1;
+            }
+
+            set
+            {
+                AddEnable1 = value;
+            }
+        }
+        #endregion
+
+
+
+        public Pagination()
+        {
+            InitializeComponent();
+            //鼠标经过控件的时候显示文字
+            toolTip1.SetToolTip(DownLoadTemplet, "下载模板");
+            toolTip1.SetToolTip(UpLoadData, "上传数据");
+            toolTip1.SetToolTip(ExportExcel, "导出数据");
+            toolTip1.SetToolTip(Delete, "删除数据");
+            toolTip1.SetToolTip(FirstPage, "第一页");
+            toolTip1.SetToolTip(PreviousPage, "上一页");
+            toolTip1.SetToolTip(NextPage, "下一页");
+            toolTip1.SetToolTip(LastPage, "最后一页");
+        }
+
+        public delegate void OnCheckedChange(object sender, EventArgs e);
+
+        //定义事件
+        public event OnCheckedChange UserControlCheckedChanged;
+
+        /// <summary>
+        /// 将数据绑定到数据源
+        /// </summary>
+        /// <param name="dgv"></param>
+        /// <param name="TableName"></param>
+        /// <param name="Field"></param>
+        public void BindDataToNavigator(DataGridView dgv, string tableName, string field, string ID, string caller, string condition, params DataGridViewImageColumn[] operate)
+        {
+            //将传来的值赋给全局变量
+            Dgv = dgv;
+            TableName = tableName;
+            Table_ID = ID;
+            Caller = caller;
+            Field = field;
+            Condition = condition;
+            //每页显示的数据数量
+            PageSize = int.Parse(this.ShowItemsNum.Text);
+            //当前在多少页
+            Current_Page = int.Parse(this.CurrentPage.Text);
+            //获取记录的总行数
+            RowCount = dh.getRowCount(TableName);
+            //分页获取数据,先取第一页的
+            dt = dh.getFieldsDatasByPageing(TableName, field, Current_Page, PageSize, Caller, condition);
+            //给BindingSource指定一个DataTable
+            RefreshTotalCount();
+            //给父控件的DataGridView绑定数据
+            dgv.DataSource = dt;
+            dt.Dispose();
+            for (int i = 0; i < operate.Length; i++)
+            {
+                dgic = operate[i];
+                AddOperateColumnToDgv();
+            }
+        }
+
+        //获取分页的数据
+        public void GetPageData()
+        {
+            this.TotalPage.Text = "/ " + TotalPageCount.ToString();
+            CurrentPage.Text = Current_Page.ToString();
+            //取分页数据
+            dt = dh.getFieldsDatasByPageing(TableName, Field, Current_Page, PageSize, Caller, Condition);
+            //赋值给父窗体的DataGridView
+            Dgv.DataSource = dt;
+            AddOperateColumnToDgv();
+        }
+
+        //判断是否需要添加操作列
+        private void AddOperateColumnToDgv()
+        {
+            if (dgic != null)
+            {
+                if (Dgv.Columns[dgic.Name] != null)
+                {
+                    Dgv.Columns.Remove(Dgv.Columns[dgic.Name]);
+                }
+                dgic.DisplayIndex = Dgv.Columns.Count;
+                Dgv.Columns.Add(dgic);
+            }
+        }
+
+        //第一页
+        private void FirstPage_Click(object sender, EventArgs e)
+        {
+            Current_Page = 1;
+            GetPageData();
+            RefreshTotalCount();
+        }
+
+        //往前翻一页
+        private void PreviousPage_Click(object sender, EventArgs e)
+        {
+            if (Current_Page > 1)
+            {
+                Current_Page--;
+            }
+            GetPageData();
+            RefreshTotalCount();
+        }
+
+        //往后翻一页
+        private void NextPage_Click(object sender, EventArgs e)
+        {
+            if (Current_Page < TotalPageCount)
+            {
+                Current_Page++;
+            }
+            GetPageData();
+            RefreshTotalCount();
+        }
+
+        //最后一页
+        private void LastPage_Click(object sender, EventArgs e)
+        {
+            Current_Page = TotalPageCount;
+            CurrentPage.Text = TotalPageCount.ToString();
+            GetPageData();
+            RefreshTotalCount();
+        }
+
+        private void ExportExcel_Click(object sender, EventArgs e)
+        {
+            ExcelExport("Data");
+        }
+
+        //用户手动输入页码的时候获取数据
+        private void CurrentPage_KeyDown(object sender, KeyEventArgs e)
+        {
+            //判断用户是否按下回车键
+            if (e.KeyValue == (int)Keys.Enter)
+            {
+                //判断是否是数字类型的
+                if (IsNumOrNull(CurrentPage.Text))
+                {
+                    Current_Page = int.Parse(CurrentPage.Text);
+                    //判断是否是合理的页码
+                    if (Current_Page >= 1 && Current_Page <= TotalPageCount)
+                    {
+                        GetPageData();
+                    }
+                    else
+                    {
+                        MessageBox.Show("请输入正确的页码");
+                    }
+                }
+                else
+                {
+                    CurrentPage.Text = "1";
+                    MessageBox.Show("页码必须是不为空的正整数");
+                }
+            }
+        }
+
+        //判断是不是数字或者空值
+        private bool IsNumOrNull(object Num)
+        {
+            //判断是否是数组
+            foreach (char c in Num.ToString())
+            {
+                if (!char.IsDigit(c))
+                {
+                    return false;
+                }
+            }
+            //判断是否为空值
+            if (Num.ToString() == "")
+            {
+                return false;
+            }
+            return true;
+        }
+
+        //刷新总页数
+        private void RefreshTotalCount()
+        {
+            //获取记录的总行数
+            if (Condition.Trim() != "")
+            {
+                RowCount = dh.getRowCount(TableName, Condition);
+            }
+            else
+            {
+                RowCount = dh.getRowCount(TableName);
+            }
+            //取模后+1来确定总的页数
+            TotalPageCount = RowCount / PageSize + 1;
+            //设置总页数Label显示的值
+            TotalPage.Text = "/ " + TotalPageCount.ToString();
+        }
+
+        //删除按钮
+        private void Delete_Click(object sender, EventArgs e)
+        {
+            //CheckBox需要失去焦点的时候值才变化,手动使焦点到按钮这
+            Delete.Focus();
+            UserControlCheckedChanged?.Invoke(sender, new EventArgs());
+            {
+                List<string> DeleteID = new List<string>();
+                for (int i = 0; i < Dgv.Rows.Count; i++)
+                {
+                    if (Dgv.Rows[i].Cells["Choose"].FormattedValue.ToString() == "True")
+                    {
+                        DeleteID.Add(Dgv.Rows[i].Cells[Table_ID].FormattedValue.ToString());
+                    }
+                }
+                if (DeleteID.ToArray().Length > 0)
+                {
+                    //取的配置的数据是从DataTable里面判断的,取的是固定字段的Dgv用第二种
+                    string tablename = TableName;
+                    if (TableName.Contains("join"))
+                    {
+                        tablename = TableName.Substring(0, TableName.IndexOf("left")).Trim();
+                    }
+                    dh.DeleteDataByID(tablename, Table_ID, DeleteID.ToArray());
+                    GetPageData();
+                    RefreshTotalCount();
+                }
+            }
+        }
+
+        //添加新的数据
+        private void Add_Click(object sender, EventArgs e)
+        {
+            ((DataTable)Dgv.DataSource).Rows.Add();
+        }
+
+        private void DownLoadTemplet_Click(object sender, EventArgs e)
+        {
+            ExcelExport("Templet");
+        }
+
+        //选择导出Excel时是选择导出数据的还是模板
+        private void ExcelExport(string DataOrTemplet)
+        {
+           
+        }
+
+        private void UpLoadData_Click(object sender, EventArgs e)
+        {
+            
+        }
+
+        private void ShowItemsNum_SelectedValueChanged(object sender, EventArgs e)
+        {
+            if (IsNumOrNull(ShowItemsNum.SelectedItem))
+            {
+                PageSize = int.Parse(ShowItemsNum.SelectedItem.ToString());
+                //推荐合理的行数
+                //int AdviceNum = DgvHeight / DgvRowHeight - 3;
+                if (PageSize >= 1)
+                {
+                    RefreshTotalCount();
+                    GetPageData();
+                }
+                else
+                {
+                    MessageBox.Show("请输入正确的数字");
+                }
+            }
+            else
+            {
+                MessageBox.Show("页码必须是不为空的正整数");
+            }
+        }
+
+        private void Pagination_Load(object sender, EventArgs e)
+        {
+            Delete.Enabled = DeleteEnable1;
+            Add.Enabled = AddEnable1;
+        }
+    }
+}

+ 129 - 0
FileWatcher/Pagination.resx

@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>197, 17</value>
+  </metadata>
+  <metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>298, 17</value>
+  </metadata>
+</root>

+ 327 - 0
FileWatcher/PaginationDbFind.Designer.cs

@@ -0,0 +1,327 @@
+namespace FileWatcher
+{
+    partial class PaginationDbFind
+    {
+        /// <summary> 
+        /// 必需的设计器变量。
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// 清理所有正在使用的资源。
+        /// </summary>
+        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region 组件设计器生成的代码
+
+        /// <summary> 
+        /// 设计器支持所需的方法 - 不要修改
+        /// 使用代码编辑器修改此方法的内容。
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.ShowItemsNum = new System.Windows.Forms.ComboBox();
+            this.UpLoadData = new FileWatcher.ClickPicBox();
+            this.DownLoadTemplet = new FileWatcher.ClickPicBox();
+            this.Add = new FileWatcher.ClickPicBox();
+            this.Delete = new FileWatcher.ClickPicBox();
+            this.ExportExcel = new FileWatcher.ClickPicBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.TotalPage = new System.Windows.Forms.Label();
+            this.CurrentPage = new System.Windows.Forms.TextBox();
+            this.PreviousPage = new FileWatcher.ClickPicBox();
+            this.LastPage = new FileWatcher.ClickPicBox();
+            this.NextPage = new FileWatcher.ClickPicBox();
+            this.FirstPage = new FileWatcher.ClickPicBox();
+            this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
+            this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
+            this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
+            this.panel1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.UpLoadData)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.DownLoadTemplet)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.Add)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.Delete)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ExportExcel)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.PreviousPage)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.LastPage)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.NextPage)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.FirstPage)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // panel1
+            // 
+            this.panel1.BackColor = System.Drawing.SystemColors.Control;
+            this.panel1.Controls.Add(this.ShowItemsNum);
+            this.panel1.Controls.Add(this.UpLoadData);
+            this.panel1.Controls.Add(this.DownLoadTemplet);
+            this.panel1.Controls.Add(this.Add);
+            this.panel1.Controls.Add(this.Delete);
+            this.panel1.Controls.Add(this.ExportExcel);
+            this.panel1.Controls.Add(this.label2);
+            this.panel1.Controls.Add(this.TotalPage);
+            this.panel1.Controls.Add(this.CurrentPage);
+            this.panel1.Controls.Add(this.PreviousPage);
+            this.panel1.Controls.Add(this.LastPage);
+            this.panel1.Controls.Add(this.NextPage);
+            this.panel1.Controls.Add(this.FirstPage);
+            this.panel1.Cursor = System.Windows.Forms.Cursors.Default;
+            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel1.Location = new System.Drawing.Point(0, 0);
+            this.panel1.Margin = new System.Windows.Forms.Padding(4);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(724, 40);
+            this.panel1.TabIndex = 0;
+            // 
+            // ShowItemsNum
+            // 
+            this.ShowItemsNum.FormattingEnabled = true;
+            this.ShowItemsNum.Items.AddRange(new object[] {
+            "40",
+            "35",
+            "30",
+            "25",
+            "20",
+            "15",
+            "10",
+            "5"});
+            this.ShowItemsNum.Location = new System.Drawing.Point(364, 8);
+            this.ShowItemsNum.Margin = new System.Windows.Forms.Padding(4);
+            this.ShowItemsNum.Name = "ShowItemsNum";
+            this.ShowItemsNum.Size = new System.Drawing.Size(65, 23);
+            this.ShowItemsNum.TabIndex = 13;
+            this.ShowItemsNum.Text = "20";
+            this.ShowItemsNum.SelectedValueChanged += new System.EventHandler(this.ShowItemsNum_SelectedValueChanged);
+            // 
+            // UpLoadData
+            // 
+            this.UpLoadData.AllPower = null;
+            this.UpLoadData.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.UpLoadData.Image = global::FileWatcher.Properties.Resources.upload_icon1;
+            this.UpLoadData.Location = new System.Drawing.Point(628, 10);
+            this.UpLoadData.Margin = new System.Windows.Forms.Padding(4);
+            this.UpLoadData.Name = "UpLoadData";
+            this.UpLoadData.Power = null;
+            this.UpLoadData.Size = new System.Drawing.Size(21, 20);
+            this.UpLoadData.TabIndex = 12;
+            this.UpLoadData.TabStop = false;
+            this.UpLoadData.Visible = false;
+            this.UpLoadData.Click += new System.EventHandler(this.UpLoadData_Click);
+            // 
+            // DownLoadTemplet
+            // 
+            this.DownLoadTemplet.AllPower = null;
+            this.DownLoadTemplet.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.DownLoadTemplet.Image = global::FileWatcher.Properties.Resources.download_14_926374650513px_1191613_easyicon_net;
+            this.DownLoadTemplet.Location = new System.Drawing.Point(580, 10);
+            this.DownLoadTemplet.Margin = new System.Windows.Forms.Padding(4);
+            this.DownLoadTemplet.Name = "DownLoadTemplet";
+            this.DownLoadTemplet.Power = null;
+            this.DownLoadTemplet.Size = new System.Drawing.Size(21, 20);
+            this.DownLoadTemplet.TabIndex = 11;
+            this.DownLoadTemplet.TabStop = false;
+            this.DownLoadTemplet.Visible = false;
+            this.DownLoadTemplet.Click += new System.EventHandler(this.DownLoadTemplet_Click);
+            // 
+            // Add
+            // 
+            this.Add.AllPower = null;
+            this.Add.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.Add.Image = global::FileWatcher.Properties.Resources.bindingNavigatorAddNewItem_Image;
+            this.Add.Location = new System.Drawing.Point(484, 10);
+            this.Add.Margin = new System.Windows.Forms.Padding(4);
+            this.Add.Name = "Add";
+            this.Add.Power = null;
+            this.Add.Size = new System.Drawing.Size(21, 22);
+            this.Add.TabIndex = 10;
+            this.Add.TabStop = false;
+            this.Add.Visible = false;
+            this.Add.Click += new System.EventHandler(this.Add_Click);
+            // 
+            // Delete
+            // 
+            this.Delete.AllPower = null;
+            this.Delete.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.Delete.Image = global::FileWatcher.Properties.Resources.bindingNavigatorDeleteItem_Image;
+            this.Delete.Location = new System.Drawing.Point(437, 10);
+            this.Delete.Margin = new System.Windows.Forms.Padding(4);
+            this.Delete.Name = "Delete";
+            this.Delete.Power = null;
+            this.Delete.Size = new System.Drawing.Size(21, 22);
+            this.Delete.TabIndex = 9;
+            this.Delete.TabStop = false;
+            this.Delete.Tag = "IfDelete";
+            this.Delete.Visible = false;
+            this.Delete.Click += new System.EventHandler(this.Delete_Click);
+            // 
+            // ExportExcel
+            // 
+            this.ExportExcel.AllPower = null;
+            this.ExportExcel.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.ExportExcel.Image = FileWatcher.Properties.Resources.Excel_2010_16px_1180011_easyicon_net;
+            this.ExportExcel.Location = new System.Drawing.Point(532, 10);
+            this.ExportExcel.Margin = new System.Windows.Forms.Padding(4);
+            this.ExportExcel.Name = "ExportExcel";
+            this.ExportExcel.Power = null;
+            this.ExportExcel.Size = new System.Drawing.Size(21, 22);
+            this.ExportExcel.TabIndex = 8;
+            this.ExportExcel.TabStop = false;
+            this.ExportExcel.Visible = false;
+            this.ExportExcel.Click += new System.EventHandler(this.ExportExcel_Click);
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Cursor = System.Windows.Forms.Cursors.Default;
+            this.label2.Location = new System.Drawing.Point(279, 12);
+            this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(82, 15);
+            this.label2.TabIndex = 6;
+            this.label2.Text = "显示数量:";
+            // 
+            // TotalPage
+            // 
+            this.TotalPage.AutoSize = true;
+            this.TotalPage.Cursor = System.Windows.Forms.Cursors.Default;
+            this.TotalPage.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.TotalPage.Location = new System.Drawing.Point(116, 6);
+            this.TotalPage.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
+            this.TotalPage.Name = "TotalPage";
+            this.TotalPage.Size = new System.Drawing.Size(0, 24);
+            this.TotalPage.TabIndex = 5;
+            // 
+            // CurrentPage
+            // 
+            this.CurrentPage.AcceptsReturn = true;
+            this.CurrentPage.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.CurrentPage.Location = new System.Drawing.Point(75, 5);
+            this.CurrentPage.Margin = new System.Windows.Forms.Padding(4);
+            this.CurrentPage.Name = "CurrentPage";
+            this.CurrentPage.Size = new System.Drawing.Size(31, 27);
+            this.CurrentPage.TabIndex = 4;
+            this.CurrentPage.Text = "1";
+            this.CurrentPage.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+            this.CurrentPage.KeyDown += new System.Windows.Forms.KeyEventHandler(this.CurrentPage_KeyDown);
+            // 
+            // PreviousPage
+            // 
+            this.PreviousPage.AllPower = null;
+            this.PreviousPage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.PreviousPage.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.PreviousPage.Image = global::FileWatcher.Properties.Resources.bindingNavigatorMovePreviousItem_Image;
+            this.PreviousPage.Location = new System.Drawing.Point(48, 10);
+            this.PreviousPage.Margin = new System.Windows.Forms.Padding(4);
+            this.PreviousPage.Name = "PreviousPage";
+            this.PreviousPage.Power = null;
+            this.PreviousPage.Size = new System.Drawing.Size(20, 19);
+            this.PreviousPage.TabIndex = 3;
+            this.PreviousPage.TabStop = false;
+            this.PreviousPage.Click += new System.EventHandler(this.PreviousPage_Click);
+            // 
+            // LastPage
+            // 
+            this.LastPage.AllPower = null;
+            this.LastPage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.LastPage.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.LastPage.Image = global::FileWatcher.Properties.Resources.bindingNavigatorMoveLastItem_Image;
+            this.LastPage.Location = new System.Drawing.Point(241, 10);
+            this.LastPage.Margin = new System.Windows.Forms.Padding(4);
+            this.LastPage.Name = "LastPage";
+            this.LastPage.Power = null;
+            this.LastPage.Size = new System.Drawing.Size(20, 19);
+            this.LastPage.TabIndex = 2;
+            this.LastPage.TabStop = false;
+            this.LastPage.Click += new System.EventHandler(this.LastPage_Click);
+            // 
+            // NextPage
+            // 
+            this.NextPage.AllPower = null;
+            this.NextPage.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.NextPage.Image = global::FileWatcher.Properties.Resources.bindingNavigatorMoveNextItem_Image;
+            this.NextPage.Location = new System.Drawing.Point(209, 10);
+            this.NextPage.Margin = new System.Windows.Forms.Padding(4, 4, 4, 25);
+            this.NextPage.Name = "NextPage";
+            this.NextPage.Power = null;
+            this.NextPage.Size = new System.Drawing.Size(20, 19);
+            this.NextPage.TabIndex = 1;
+            this.NextPage.TabStop = false;
+            this.NextPage.Click += new System.EventHandler(this.NextPage_Click);
+            // 
+            // FirstPage
+            // 
+            this.FirstPage.AllPower = null;
+            this.FirstPage.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left)));
+            this.FirstPage.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.FirstPage.Image = global::FileWatcher.Properties.Resources.bindingNavigatorMoveFirstItem_Image;
+            this.FirstPage.Location = new System.Drawing.Point(19, 10);
+            this.FirstPage.Margin = new System.Windows.Forms.Padding(4);
+            this.FirstPage.Name = "FirstPage";
+            this.FirstPage.Power = null;
+            this.FirstPage.Size = new System.Drawing.Size(20, 19);
+            this.FirstPage.TabIndex = 0;
+            this.FirstPage.TabStop = false;
+            this.FirstPage.Click += new System.EventHandler(this.FirstPage_Click);
+            // 
+            // openFileDialog1
+            // 
+            this.openFileDialog1.FileName = "openFileDialog1";
+            // 
+            // PaginationDbFind
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.panel1);
+            this.Cursor = System.Windows.Forms.Cursors.Hand;
+            this.Margin = new System.Windows.Forms.Padding(4);
+            this.Name = "PaginationDbFind";
+            this.Size = new System.Drawing.Size(724, 40);
+            this.Load += new System.EventHandler(this.Pagination_Load);
+            this.panel1.ResumeLayout(true);
+            this.panel1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.UpLoadData)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.DownLoadTemplet)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.Add)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.Delete)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.ExportExcel)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.PreviousPage)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.LastPage)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.NextPage)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.FirstPage)).EndInit();
+            this.ResumeLayout(true);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Panel panel1;
+        private System.Windows.Forms.Label TotalPage;
+        private System.Windows.Forms.TextBox CurrentPage;
+        private ClickPicBox PreviousPage;
+        private ClickPicBox LastPage;
+        private ClickPicBox NextPage;
+        private ClickPicBox FirstPage;
+        private ClickPicBox ExportExcel;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1;
+        private ClickPicBox Add;
+        private ClickPicBox Delete;
+        private ClickPicBox DownLoadTemplet;
+        private ClickPicBox UpLoadData;
+        private System.Windows.Forms.ToolTip toolTip1;
+        private System.Windows.Forms.OpenFileDialog openFileDialog1;
+        private System.Windows.Forms.ComboBox ShowItemsNum;
+    }
+}

+ 358 - 0
FileWatcher/PaginationDbFind.cs

@@ -0,0 +1,358 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Windows.Forms;
+
+namespace FileWatcher
+{
+    public partial class PaginationDbFind : UserControl
+    {
+        #region 变量
+        //申明一些全局变量用来在函数之间传递参数
+        int PageSize;
+        /// <summary>
+        /// 当前页码
+        /// </summary>
+        public int Current_Page;
+        /// <summary>
+        /// 总页数
+        /// </summary>
+        int TotalPageCount;
+        /// <summary>
+        /// 一页展示的行数
+        /// </summary>
+        int RowCount;
+        /// <summary>
+        /// 主表的ID
+        /// </summary>
+        string Table_ID;
+        /// <summary>
+        /// 查询的表名
+        /// </summary>
+        string TableName;
+        string Caller;
+        /// <summary>
+        /// 查询的字段
+        /// </summary>
+        string Field;
+        /// <summary>
+        /// 需要添加的图像操作列
+        /// </summary>
+        DataGridViewImageColumn dgic = null;
+        string Condition = "";
+        /// <summary>
+        /// 删除按钮是否能够点击
+        /// </summary>
+        bool DeleteEnable1;
+        /// <summary>
+        /// 添加按钮是否能够点击
+        /// </summary>
+        bool AddEnable1;
+        DataGridView Dgv;
+        DataTable dt;
+        DataHelper dh = SystemInf.dh;
+
+        public bool DeleteEnable
+        {
+            get
+            {
+                return DeleteEnable1;
+            }
+
+            set
+            {
+                DeleteEnable1 = value;
+            }
+        }
+
+        public bool AddEnable
+        {
+            get
+            {
+                return AddEnable1;
+            }
+
+            set
+            {
+                AddEnable1 = value;
+            }
+        }
+        #endregion
+
+
+
+        public PaginationDbFind()
+        {
+            InitializeComponent();
+            //鼠标经过控件的时候显示文字
+            toolTip1.SetToolTip(DownLoadTemplet, "下载模板");
+            toolTip1.SetToolTip(UpLoadData, "上传数据");
+            toolTip1.SetToolTip(ExportExcel, "导出数据");
+            toolTip1.SetToolTip(Delete, "删除数据");
+            toolTip1.SetToolTip(FirstPage, "第一页");
+            toolTip1.SetToolTip(PreviousPage, "上一页");
+            toolTip1.SetToolTip(NextPage, "下一页");
+            toolTip1.SetToolTip(LastPage, "最后一页");
+        }
+
+        public delegate void OnCheckedChange(object sender, EventArgs e);
+
+        //定义事件
+        public event OnCheckedChange UserControlCheckedChanged;
+
+        /// <summary>
+        /// 将数据绑定到数据源
+        /// </summary>
+        /// <param name="dgv"></param>
+        /// <param name="TableName"></param>
+        /// <param name="Field"></param>
+        public void BindDataToNavigator(DataGridView dgv, string tableName, string field, string ID, string caller, string condition, params DataGridViewImageColumn[] operate)
+        {
+            //将传来的值赋给全局变量
+            Dgv = dgv;
+            TableName = tableName;
+            Table_ID = ID;
+            Caller = caller;
+            Field = field;
+            Condition = condition;
+            //每页显示的数据数量
+            PageSize = int.Parse(this.ShowItemsNum.Text);
+            //当前在多少页
+            Current_Page = int.Parse(this.CurrentPage.Text);
+            //获取记录的总行数
+            RowCount = dh.getRowCount(TableName);
+            //分页获取数据,先取第一页的
+            dt = dh.getFieldsDatasByPageing(TableName, field, Current_Page, PageSize, Caller, condition);
+            //给BindingSource指定一个DataTable
+            RefreshTotalCount();
+            //给父控件的DataGridView绑定数据
+            dgv.DataSource = dt;
+            dt.Dispose();
+            for (int i = 0; i < operate.Length; i++)
+            {
+                dgic = operate[i];
+                AddOperateColumnToDgv();
+            }
+        }
+
+        //获取分页的数据
+        public void GetPageData()
+        {
+            this.TotalPage.Text = "/ " + TotalPageCount.ToString();
+            CurrentPage.Text = Current_Page.ToString();
+            //取分页数据
+            dt = dh.getFieldsDatasByPageing(TableName, Field, Current_Page, PageSize, Caller, Condition);
+            //赋值给父窗体的DataGridView
+            Dgv.DataSource = dt;
+            AddOperateColumnToDgv();
+        }
+
+        //判断是否需要添加操作列
+        private void AddOperateColumnToDgv()
+        {
+            if (dgic != null)
+            {
+                if (Dgv.Columns[dgic.Name] != null)
+                {
+                    Dgv.Columns.Remove(Dgv.Columns[dgic.Name]);
+                }
+                dgic.DisplayIndex = Dgv.Columns.Count;
+                Dgv.Columns.Add(dgic);
+            }
+        }
+
+        //第一页
+        private void FirstPage_Click(object sender, EventArgs e)
+        {
+            Current_Page = 1;
+            GetPageData();
+            RefreshTotalCount();
+        }
+
+        //往前翻一页
+        private void PreviousPage_Click(object sender, EventArgs e)
+        {
+            if (Current_Page > 1)
+            {
+                Current_Page--;
+            }
+            GetPageData();
+            RefreshTotalCount();
+        }
+
+        //往后翻一页
+        private void NextPage_Click(object sender, EventArgs e)
+        {
+            if (Current_Page < TotalPageCount)
+            {
+                Current_Page++;
+            }
+            GetPageData();
+            RefreshTotalCount();
+        }
+
+        //最后一页
+        private void LastPage_Click(object sender, EventArgs e)
+        {
+            Current_Page = TotalPageCount;
+            CurrentPage.Text = TotalPageCount.ToString();
+            GetPageData();
+            RefreshTotalCount();
+        }
+
+        private void ExportExcel_Click(object sender, EventArgs e)
+        {
+            ExcelExport("Data");
+        }
+
+        //用户手动输入页码的时候获取数据
+        private void CurrentPage_KeyDown(object sender, KeyEventArgs e)
+        {
+            //判断用户是否按下回车键
+            if (e.KeyValue == (int)Keys.Enter)
+            {
+                //判断是否是数字类型的
+                if (IsNumOrNull(CurrentPage.Text))
+                {
+                    Current_Page = int.Parse(CurrentPage.Text);
+                    //判断是否是合理的页码
+                    if (Current_Page >= 1 && Current_Page <= TotalPageCount)
+                    {
+                        GetPageData();
+                    }
+                    else
+                    {
+                        MessageBox.Show("请输入正确的页码");
+                    }
+                }
+                else
+                {
+                    CurrentPage.Text = "1";
+                    MessageBox.Show("页码必须是不为空的正整数");
+                }
+            }
+        }
+
+        //判断是不是数字或者空值
+        private bool IsNumOrNull(object Num)
+        {
+            //判断是否是数组
+            foreach (char c in Num.ToString())
+            {
+                if (!char.IsDigit(c))
+                {
+                    return false;
+                }
+            }
+            //判断是否为空值
+            if (Num.ToString() == "")
+            {
+                return false;
+            }
+            return true;
+        }
+
+        //刷新总页数
+        private void RefreshTotalCount()
+        {
+            //获取记录的总行数
+            if (Condition.Trim() != "")
+            {
+                RowCount = dh.getRowCount(TableName, Condition);
+            }
+            else
+            {
+                RowCount = dh.getRowCount(TableName);
+            }
+            //取模后+1来确定总的页数
+            TotalPageCount = RowCount / PageSize + 1;
+            //设置总页数Label显示的值
+            TotalPage.Text = "/ " + TotalPageCount.ToString();
+        }
+
+        //删除按钮
+        private void Delete_Click(object sender, EventArgs e)
+        {
+            //CheckBox需要失去焦点的时候值才变化,手动使焦点到按钮这
+            Delete.Focus();
+            UserControlCheckedChanged?.Invoke(sender, new EventArgs());
+            {
+                List<string> DeleteID = new List<string>();
+                for (int i = 0; i < Dgv.Rows.Count; i++)
+                {
+                    if (Dgv.Rows[i].Cells["Choose"].FormattedValue.ToString() == "True")
+                    {
+                        DeleteID.Add(Dgv.Rows[i].Cells[Table_ID].FormattedValue.ToString());
+                    }
+                }
+                if (DeleteID.ToArray().Length > 0)
+                {
+                    //取的配置的数据是从DataTable里面判断的,取的是固定字段的Dgv用第二种
+                    string tablename = TableName;
+                    if (TableName.Contains("join"))
+                    {
+                        tablename = TableName.Substring(0, TableName.IndexOf("left")).Trim();
+                    }
+                    dh.DeleteDataByID(tablename, Table_ID, DeleteID.ToArray());
+                    GetPageData();
+                    RefreshTotalCount();
+                }
+            }
+        }
+
+        //添加新的数据
+        private void Add_Click(object sender, EventArgs e)
+        {
+            ((DataTable)Dgv.DataSource).Rows.Add();
+        }
+
+        private void DownLoadTemplet_Click(object sender, EventArgs e)
+        {
+            ExcelExport("Templet");
+        }
+
+        //选择导出Excel时是选择导出数据的还是模板
+        private void ExcelExport(string DataOrTemplet)
+        {
+          
+        }
+
+        private void UpLoadData_Click(object sender, EventArgs e)
+        {
+            openFileDialog1.Title = "选择需要导入的Excel";
+            if (openFileDialog1.ShowDialog() == DialogResult.OK)
+            {
+             
+            }
+        }
+
+        private void ShowItemsNum_SelectedValueChanged(object sender, EventArgs e)
+        {
+            if (IsNumOrNull(ShowItemsNum.SelectedItem))
+            {
+                PageSize = int.Parse(ShowItemsNum.SelectedItem.ToString());
+                //推荐合理的行数
+                //int AdviceNum = DgvHeight / DgvRowHeight - 3;
+                if (PageSize >= 1)
+                {
+                    RefreshTotalCount();
+                    GetPageData();
+                }
+                else
+                {
+                    MessageBox.Show("请输入正确的数字");
+                }
+            }
+            else
+            {
+                MessageBox.Show("页码必须是不为空的正整数");
+            }
+        }
+
+        private void Pagination_Load(object sender, EventArgs e)
+        {
+            Delete.Enabled = DeleteEnable1;
+            Add.Enabled = AddEnable1;
+        }
+    }
+}

+ 129 - 0
FileWatcher/PaginationDbFind.resx

@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>197, 17</value>
+  </metadata>
+  <metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>298, 17</value>
+  </metadata>
+</root>

+ 970 - 0
FileWatcher/Properties/Resources.Designer.cs

@@ -59,5 +59,975 @@ namespace FileWatcher.Properties {
                 resourceCulture = value;
             }
         }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap _07 {
+            get {
+                object obj = ResourceManager.GetObject("_07", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap _0802192135 {
+            get {
+                object obj = ResourceManager.GetObject("_0802192135", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap _15aedb5b_a345_48b6_8b81_784e410d7fd1 {
+            get {
+                object obj = ResourceManager.GetObject("_15aedb5b_a345_48b6_8b81_784e410d7fd1", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap _2_0btn_04 {
+            get {
+                object obj = ResourceManager.GetObject("_2_0btn_04", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap _2_0btn_07 {
+            get {
+                object obj = ResourceManager.GetObject("_2_0btn_07", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap _2_0btn_36 {
+            get {
+                object obj = ResourceManager.GetObject("_2_0btn_36", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap _20130711113247276 {
+            get {
+                object obj = ResourceManager.GetObject("_20130711113247276", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap _46 {
+            get {
+                object obj = ResourceManager.GetObject("_46", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap _83 {
+            get {
+                object obj = ResourceManager.GetObject("_83", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap b473847f_a85b_400e_807a_4875c4c07ff1 {
+            get {
+                object obj = ResourceManager.GetObject("b473847f_a85b_400e_807a_4875c4c07ff1", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Barcode_48px_1072745_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("Barcode_48px_1072745_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap bindingNavigatorAddNewItem_Image {
+            get {
+                object obj = ResourceManager.GetObject("bindingNavigatorAddNewItem_Image", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap bindingNavigatorDeleteItem_Image {
+            get {
+                object obj = ResourceManager.GetObject("bindingNavigatorDeleteItem_Image", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap bindingNavigatorMoveFirstItem_Image {
+            get {
+                object obj = ResourceManager.GetObject("bindingNavigatorMoveFirstItem_Image", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap bindingNavigatorMoveLastItem_Image {
+            get {
+                object obj = ResourceManager.GetObject("bindingNavigatorMoveLastItem_Image", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap bindingNavigatorMoveNextItem_Image {
+            get {
+                object obj = ResourceManager.GetObject("bindingNavigatorMoveNextItem_Image", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap bindingNavigatorMovePreviousItem_Image {
+            get {
+                object obj = ResourceManager.GetObject("bindingNavigatorMovePreviousItem_Image", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap box_17_453077699294px_1191579_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("box_17_453077699294px_1191579_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap box_26_17961654894px_1191579_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("box_26_17961654894px_1191579_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckoff1 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckoff1", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckoff2 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckoff2", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckoff3 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckoff3", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckoff4 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckoff4", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckoff5 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckoff5", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckoff6 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckoff6", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckon1 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckon1", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckon2 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckon2", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckon3 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckon3", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckon4 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckon4", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckon5 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckon5", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap btncheckon6 {
+            get {
+                object obj = ResourceManager.GetObject("btncheckon6", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap change_password {
+            get {
+                object obj = ResourceManager.GetObject("change_password", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap close {
+            get {
+                object obj = ResourceManager.GetObject("close", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap close_16px_558195_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("close_16px_558195_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap CLOSE_24px_1115282_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("CLOSE_24px_1115282_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap close_24px_1139093_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("close_24px_1139093_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap close_24px_1139293_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("close_24px_1139293_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap close_32px_1181428_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("close_32px_1181428_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Close_up_32px_1181430_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("Close_up_32px_1181430_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap defaulticon {
+            get {
+                object obj = ResourceManager.GetObject("defaulticon", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap dialog_close_24px_1173781_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("dialog_close_24px_1173781_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap dialog_error_5_48px_542794_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("dialog_error_5_48px_542794_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap down {
+            get {
+                object obj = ResourceManager.GetObject("down", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap download_14_926374650513px_1191613_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("download_14_926374650513px_1191613_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap download_17_519713261649px_1200629_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("download_17_519713261649px_1200629_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap download_17_519713261649px_1200629_easyicon_net__1_ {
+            get {
+                object obj = ResourceManager.GetObject("download_17_519713261649px_1200629_easyicon_net__1_", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap excel {
+            get {
+                object obj = ResourceManager.GetObject("excel", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Excel_2010_16px_1180011_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("Excel_2010_16px_1180011_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Excel_2013_16px_1180012_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("Excel_2013_16px_1180012_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap file {
+            get {
+                object obj = ResourceManager.GetObject("file", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap file_24px_1133611_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("file_24px_1133611_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap file_24px_1175380_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("file_24px_1175380_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap file_info_64px_1176626_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("file_info_64px_1176626_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap file_manager_24px_1145241_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("file_manager_24px_1145241_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap focus {
+            get {
+                object obj = ResourceManager.GetObject("focus", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap gray {
+            get {
+                object obj = ResourceManager.GetObject("gray", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap highlight {
+            get {
+                object obj = ResourceManager.GetObject("highlight", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap icon_title {
+            get {
+                object obj = ResourceManager.GetObject("icon_title", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Image1 {
+            get {
+                object obj = ResourceManager.GetObject("Image1", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Light {
+            get {
+                object obj = ResourceManager.GetObject("Light", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap LoadingError {
+            get {
+                object obj = ResourceManager.GetObject("LoadingError", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap LoadingFormat {
+            get {
+                object obj = ResourceManager.GetObject("LoadingFormat", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap lock_lock_24px {
+            get {
+                object obj = ResourceManager.GetObject("lock_lock_24px", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap lock_open_24px {
+            get {
+                object obj = ResourceManager.GetObject("lock_open_24px", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Lock24px {
+            get {
+                object obj = ResourceManager.GetObject("Lock24px", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap LoginBG {
+            get {
+                object obj = ResourceManager.GetObject("LoginBG", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap Logout_32px_581264_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("Logout_32px_581264_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap minus {
+            get {
+                object obj = ResourceManager.GetObject("minus", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap normal {
+            get {
+                object obj = ResourceManager.GetObject("normal", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap notice_text_editor_16px_11373_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("notice_text_editor_16px_11373_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap OQC作业 {
+            get {
+                object obj = ResourceManager.GetObject("OQC作业", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap People_48px_500819_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("People_48px_500819_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap plus {
+            get {
+                object obj = ResourceManager.GetObject("plus", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap pluslogo {
+            get {
+                object obj = ResourceManager.GetObject("pluslogo", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap preview_16px_25980_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("preview_16px_25980_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap pwd {
+            get {
+                object obj = ResourceManager.GetObject("pwd", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap refresh {
+            get {
+                object obj = ResourceManager.GetObject("refresh", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap search_16px_1202802_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("search_16px_1202802_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap timg {
+            get {
+                object obj = ResourceManager.GetObject("timg", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap two_arrow_left {
+            get {
+                object obj = ResourceManager.GetObject("two_arrow_left", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap two_arrow_right {
+            get {
+                object obj = ResourceManager.GetObject("two_arrow_right", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap uas_blue {
+            get {
+                object obj = ResourceManager.GetObject("uas_blue", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap updating {
+            get {
+                object obj = ResourceManager.GetObject("updating", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap upload_17_459649122807px_1200703_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("upload_17_459649122807px_1200703_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap upload_17_459649122807px_1200703_easyicon_net__1_ {
+            get {
+                object obj = ResourceManager.GetObject("upload_17_459649122807px_1200703_easyicon_net__1_", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap upload_icon1 {
+            get {
+                object obj = ResourceManager.GetObject("upload_icon1", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap White_side {
+            get {
+                object obj = ResourceManager.GetObject("White_side", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap WhiteImage {
+            get {
+                object obj = ResourceManager.GetObject("WhiteImage", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap write_15_893687707641px_1181413_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("write_15_893687707641px_1181413_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap zxing_android_code_48px_1107946_easyicon_net {
+            get {
+                object obj = ResourceManager.GetObject("zxing_android_code_48px_1107946_easyicon_net", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap 产线作业 {
+            get {
+                object obj = ResourceManager.GetObject("产线作业", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap 人员管理 {
+            get {
+                object obj = ResourceManager.GetObject("人员管理", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap 仓库作业 {
+            get {
+                object obj = ResourceManager.GetObject("仓库作业", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap 包装作业 {
+            get {
+                object obj = ResourceManager.GetObject("包装作业", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap 查询分析 {
+            get {
+                object obj = ResourceManager.GetObject("查询分析", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap 特殊作业 {
+            get {
+                object obj = ResourceManager.GetObject("特殊作业", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap 系统设置 {
+            get {
+                object obj = ResourceManager.GetObject("系统设置", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
     }
 }

+ 300 - 5
FileWatcher/Properties/Resources.resx

@@ -46,7 +46,7 @@
     
     mimetype: application/x-microsoft.net.object.binary.base64
     value   : The object must be serialized with 
-            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
     
     mimetype: application/x-microsoft.net.object.soap.base64
@@ -60,6 +60,7 @@
             : 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">
@@ -68,9 +69,10 @@
               <xsd:sequence>
                 <xsd:element name="value" type="xsd:string" minOccurs="0" />
               </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" />
+              <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">
@@ -85,9 +87,10 @@
                 <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" msdata:Ordinal="1" />
+              <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">
@@ -109,9 +112,301 @@
     <value>2.0</value>
   </resheader>
   <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="b473847f_a85b_400e_807a_4875c4c07ff1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\b473847f-a85b-400e-807a-4875c4c07ff1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Barcode_48px_1072745_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Barcode_48px_1072745_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="bindingNavigatorAddNewItem_Image" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\bindingNavigatorAddNewItem.Image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="bindingNavigatorDeleteItem_Image" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\bindingNavigatorDeleteItem.Image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="bindingNavigatorMoveFirstItem_Image" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\bindingNavigatorMoveFirstItem.Image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="bindingNavigatorMoveLastItem_Image" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\bindingNavigatorMoveLastItem.Image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="bindingNavigatorMoveNextItem_Image" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\bindingNavigatorMoveNextItem.Image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="bindingNavigatorMovePreviousItem_Image" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\bindingNavigatorMovePreviousItem.Image.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="box_17_453077699294px_1191579_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\box_17.453077699294px_1191579_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="box_26_17961654894px_1191579_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\box_26.17961654894px_1191579_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckoff1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckoff1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckoff2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckoff2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckoff3" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckoff3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckoff4" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckoff4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckoff5" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckoff5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckoff6" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckoff6.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckon1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckon1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckon2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckon2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckon3" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckon3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckon4" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckon4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckon5" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckon5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="btncheckon6" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\btncheckon6.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="change_password" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\change_password.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="close" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\close.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="close_16px_558195_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\close_16px_558195_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="CLOSE_24px_1115282_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\CLOSE_24px_1115282_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="close_24px_1139093_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\close_24px_1139093_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="close_24px_1139293_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\close_24px_1139293_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="close_32px_1181428_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\close_32px_1181428_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Close_up_32px_1181430_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Close_up_32px_1181430_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="defaulticon" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\defaulticon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="dialog_close_24px_1173781_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\dialog_close_24px_1173781_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="dialog_error_5_48px_542794_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\dialog_error_5_48px_542794_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="down" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="download_14_926374650513px_1191613_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\download_14.926374650513px_1191613_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="download_17_519713261649px_1200629_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\download_17.519713261649px_1200629_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="download_17_519713261649px_1200629_easyicon_net__1_" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\download_17.519713261649px_1200629_easyicon.net (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="excel" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\excel.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Excel_2010_16px_1180011_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Excel_2010_16px_1180011_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Excel_2013_16px_1180012_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Excel_2013_16px_1180012_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="file" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="file_24px_1133611_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\file_24px_1133611_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="file_24px_1175380_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\file_24px_1175380_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="file_info_64px_1176626_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\file_info_64px_1176626_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="file_manager_24px_1145241_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\file_manager_24px_1145241_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="focus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\focus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="gray" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\gray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="highlight" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\highlight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="icon_title" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\icon_title.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Image1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Image1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Light" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Light.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="LoadingError" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\LoadingError.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="LoadingFormat" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\LoadingFormat.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Lock24px" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Lock24px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="lock_lock_24px" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\lock_lock_24px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="lock_open_24px" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\lock_open_24px.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="LoginBG" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\LoginBG.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="Logout_32px_581264_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Logout_32px_581264_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="minus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\minus.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="normal" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\normal.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="notice_text_editor_16px_11373_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\notice_text_editor_16px_11373_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="OQC作业" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\OQC作业.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="People_48px_500819_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\People_48px_500819_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\plus.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="pluslogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\pluslogo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="preview_16px_25980_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\preview_16px_25980_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="pwd" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\pwd.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="search_16px_1202802_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\search_16px_1202802_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="timg" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\timg.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="two_arrow_left" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\two_arrow_left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="two_arrow_right" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\two_arrow_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="uas_blue" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\uas_blue.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="updating" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\updating.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="upload_17_459649122807px_1200703_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\upload_17.459649122807px_1200703_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="upload_17_459649122807px_1200703_easyicon_net__1_" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\upload_17.459649122807px_1200703_easyicon.net (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="upload_icon1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\upload_icon1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="WhiteImage" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\WhiteImage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="White_side" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\White-side.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="write_15_893687707641px_1181413_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\write_15.893687707641px_1181413_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="zxing_android_code_48px_1107946_easyicon_net" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\zxing_android_code_48px_1107946_easyicon.net.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="_07" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\07.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="_0802192135" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\0802192135.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="_15aedb5b_a345_48b6_8b81_784e410d7fd1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\15aedb5b-a345-48b6-8b81-784e410d7fd1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="_20130711113247276" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\20130711113247276.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="_2_0btn_04" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\2-0btn_04.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="_2_0btn_07" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\2-0btn_07.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="_2_0btn_36" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\2-0btn_36.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="_46" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\46.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="_83" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\83.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="产线作业" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\产线作业.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="人员管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\人员管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="仓库作业" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\仓库作业.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="包装作业" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\包装作业.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="查询分析" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\查询分析.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="特殊作业" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\特殊作业.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="系统设置" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\系统设置.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
 </root>

BIN
FileWatcher/Resources/07.gif


BIN
FileWatcher/Resources/0802192135.png


BIN
FileWatcher/Resources/15aedb5b-a345-48b6-8b81-784e410d7fd1.png


BIN
FileWatcher/Resources/2-0btn_04.png


BIN
FileWatcher/Resources/2-0btn_07.png


BIN
FileWatcher/Resources/2-0btn_36.png


BIN
FileWatcher/Resources/20130711113247276.png


BIN
FileWatcher/Resources/46.gif


BIN
FileWatcher/Resources/83.gif


BIN
FileWatcher/Resources/Barcode_48px_1072745_easyicon.net.png


BIN
FileWatcher/Resources/CLOSE_24px_1115282_easyicon.net.png


BIN
FileWatcher/Resources/Close_up_32px_1181430_easyicon.net.png


BIN
FileWatcher/Resources/Excel_2010_16px_1180011_easyicon.net.png


BIN
FileWatcher/Resources/Excel_2013_16px_1180012_easyicon.net.png


BIN
FileWatcher/Resources/Image1.bmp


BIN
FileWatcher/Resources/Light.png


BIN
FileWatcher/Resources/LoadingError.gif


BIN
FileWatcher/Resources/LoadingFormat.gif


BIN
FileWatcher/Resources/Lock24px.png


BIN
FileWatcher/Resources/LoginBG.jpg


BIN
FileWatcher/Resources/Logout_32px_581264_easyicon.net.png


BIN
FileWatcher/Resources/OQC作业.png


BIN
FileWatcher/Resources/People_48px_500819_easyicon.net.png


BIN
FileWatcher/Resources/Sound/1454.wav


BIN
FileWatcher/Resources/Sound/3291.wav


BIN
FileWatcher/Resources/Sound/3853.wav


BIN
FileWatcher/Resources/Sound/4082.wav


BIN
FileWatcher/Resources/Sound/5185.wav


BIN
FileWatcher/Resources/Sound/8378.wav


BIN
FileWatcher/Resources/Sound/9865.wav


BIN
FileWatcher/Resources/Sound/Windows Background.wav


BIN
FileWatcher/Resources/White-side.png


BIN
FileWatcher/Resources/WhiteImage.png


BIN
FileWatcher/Resources/b473847f-a85b-400e-807a-4875c4c07ff1.png


BIN
FileWatcher/Resources/bindingNavigatorAddNewItem.Image.png


BIN
FileWatcher/Resources/bindingNavigatorDeleteItem.Image.png


BIN
FileWatcher/Resources/bindingNavigatorMoveFirstItem.Image.png


BIN
FileWatcher/Resources/bindingNavigatorMoveLastItem.Image.png


BIN
FileWatcher/Resources/bindingNavigatorMoveNextItem.Image.png


BIN
FileWatcher/Resources/bindingNavigatorMovePreviousItem.Image.png


BIN
FileWatcher/Resources/box_17.453077699294px_1191579_easyicon.net.png


BIN
FileWatcher/Resources/box_26.17961654894px_1191579_easyicon.net.png


BIN
FileWatcher/Resources/btncheckoff1.png


BIN
FileWatcher/Resources/btncheckoff2.png


BIN
FileWatcher/Resources/btncheckoff3.png


BIN
FileWatcher/Resources/btncheckoff4.png


BIN
FileWatcher/Resources/btncheckoff5.png


BIN
FileWatcher/Resources/btncheckoff6.png


BIN
FileWatcher/Resources/btncheckon1.png


BIN
FileWatcher/Resources/btncheckon2.png


BIN
FileWatcher/Resources/btncheckon3.png


BIN
FileWatcher/Resources/btncheckon4.png


BIN
FileWatcher/Resources/btncheckon5.png


BIN
FileWatcher/Resources/btncheckon6.png


BIN
FileWatcher/Resources/change_password.png


BIN
FileWatcher/Resources/close.png


BIN
FileWatcher/Resources/close_16px_558195_easyicon.net.png


BIN
FileWatcher/Resources/close_24px_1139093_easyicon.net.png


Some files were not shown because too many files changed in this diff