浏览代码

优化 用户自定义编辑器 并修改bug

cxs 2 年之前
父节点
当前提交
2cde98b1ba

+ 6 - 9
OTSPartA_STDEditor/Form_ConstantsEditor2.Designer.cs

@@ -169,7 +169,6 @@
             // 
             // 
             this.ribbon1.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
             this.ribbon1.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
             this.ribbon1.Location = new System.Drawing.Point(0, 0);
             this.ribbon1.Location = new System.Drawing.Point(0, 0);
-            this.ribbon1.Margin = new System.Windows.Forms.Padding(4);
             this.ribbon1.Minimized = false;
             this.ribbon1.Minimized = false;
             this.ribbon1.Name = "ribbon1";
             this.ribbon1.Name = "ribbon1";
             // 
             // 
@@ -199,7 +198,7 @@
             this.ribbon1.QuickAcessToolbar.ToolTip = null;
             this.ribbon1.QuickAcessToolbar.ToolTip = null;
             this.ribbon1.QuickAcessToolbar.ToolTipImage = null;
             this.ribbon1.QuickAcessToolbar.ToolTipImage = null;
             this.ribbon1.QuickAcessToolbar.ToolTipTitle = null;
             this.ribbon1.QuickAcessToolbar.ToolTipTitle = null;
-            this.ribbon1.Size = new System.Drawing.Size(2407, 130);
+            this.ribbon1.Size = new System.Drawing.Size(1805, 130);
             this.ribbon1.TabIndex = 0;
             this.ribbon1.TabIndex = 0;
             this.ribbon1.Tabs.Add(this.ribbonTab2);
             this.ribbon1.Tabs.Add(this.ribbonTab2);
             this.ribbon1.TabSpacing = 6;
             this.ribbon1.TabSpacing = 6;
@@ -259,8 +258,8 @@
             this.ribbon_GroupNameMaintenance.DropDownArrowDirection = System.Windows.Forms.RibbonArrowDirection.Left;
             this.ribbon_GroupNameMaintenance.DropDownArrowDirection = System.Windows.Forms.RibbonArrowDirection.Left;
             this.ribbon_GroupNameMaintenance.DropDownArrowSize = new System.Drawing.Size(5, 3);
             this.ribbon_GroupNameMaintenance.DropDownArrowSize = new System.Drawing.Size(5, 3);
             this.ribbon_GroupNameMaintenance.Enabled = false;
             this.ribbon_GroupNameMaintenance.Enabled = false;
-            this.ribbon_GroupNameMaintenance.Image = global::OTSPartA_STDEditor.Properties.Resources.worddocument32;
-            this.ribbon_GroupNameMaintenance.SmallImage = global::OTSPartA_STDEditor.Properties.Resources.worddocument32;
+            this.ribbon_GroupNameMaintenance.Image = global::OTSPartA_STDEditor.Properties.Resources.编辑;
+            this.ribbon_GroupNameMaintenance.SmallImage = global::OTSPartA_STDEditor.Properties.Resources.编辑;
             this.ribbon_GroupNameMaintenance.Style = System.Windows.Forms.RibbonButtonStyle.Normal;
             this.ribbon_GroupNameMaintenance.Style = System.Windows.Forms.RibbonButtonStyle.Normal;
             this.ribbon_GroupNameMaintenance.Tag = "ribbon_GroupNameMaintenance";
             this.ribbon_GroupNameMaintenance.Tag = "ribbon_GroupNameMaintenance";
             this.ribbon_GroupNameMaintenance.Text = "组名维护";
             this.ribbon_GroupNameMaintenance.Text = "组名维护";
@@ -441,9 +440,8 @@
             this.dockPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.dockPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
             this.dockPanel1.DockBackColor = System.Drawing.SystemColors.Control;
             this.dockPanel1.DockBackColor = System.Drawing.SystemColors.Control;
             this.dockPanel1.Location = new System.Drawing.Point(0, 130);
             this.dockPanel1.Location = new System.Drawing.Point(0, 130);
-            this.dockPanel1.Margin = new System.Windows.Forms.Padding(4);
             this.dockPanel1.Name = "dockPanel1";
             this.dockPanel1.Name = "dockPanel1";
-            this.dockPanel1.Size = new System.Drawing.Size(2407, 858);
+            this.dockPanel1.Size = new System.Drawing.Size(1805, 660);
             dockPanelGradient1.EndColor = System.Drawing.SystemColors.ControlLight;
             dockPanelGradient1.EndColor = System.Drawing.SystemColors.ControlLight;
             dockPanelGradient1.StartColor = System.Drawing.SystemColors.ControlLight;
             dockPanelGradient1.StartColor = System.Drawing.SystemColors.ControlLight;
             autoHideStripSkin1.DockStripGradient = dockPanelGradient1;
             autoHideStripSkin1.DockStripGradient = dockPanelGradient1;
@@ -621,13 +619,12 @@
             // 
             // 
             // Form_ConstantsEditor2
             // Form_ConstantsEditor2
             // 
             // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(2407, 988);
+            this.ClientSize = new System.Drawing.Size(1805, 790);
             this.Controls.Add(this.dockPanel1);
             this.Controls.Add(this.dockPanel1);
             this.Controls.Add(this.ribbon1);
             this.Controls.Add(this.ribbon1);
             this.IsMdiContainer = true;
             this.IsMdiContainer = true;
-            this.Margin = new System.Windows.Forms.Padding(4);
             this.Name = "Form_ConstantsEditor2";
             this.Name = "Form_ConstantsEditor2";
             this.ShowIcon = false;
             this.ShowIcon = false;
             this.Text = "表达式编辑器";
             this.Text = "表达式编辑器";

+ 55 - 46
OTSPartA_STDEditor/ReferenceLibrary.cs

@@ -488,7 +488,7 @@ namespace OTSPartA_STDEditor
             int i = m_SubMidWindow.m_MainForm.m_STDRuleslist.Grid_Minerals.Selection.ActivePosition.Row;
             int i = m_SubMidWindow.m_MainForm.m_STDRuleslist.Grid_Minerals.Selection.ActivePosition.Row;
             int j = m_SubMidWindow.m_MainForm.m_STDRuleslist.Grid_Minerals.Selection.ActivePosition.Column;
             int j = m_SubMidWindow.m_MainForm.m_STDRuleslist.Grid_Minerals.Selection.ActivePosition.Column;
             /// 保证鼠标点击的GRID行和列是有效的
             /// 保证鼠标点击的GRID行和列是有效的
-            if (i >= 0 && j >= 0)
+            if (i > 0 && j >= 0)
             {
             {
                 //规则名称不为空
                 //规则名称不为空
                 if (m_SubMidWindow.m_MainForm.m_STDRuleslist.Grid_Minerals[i, j].Value.ToString().Replace(" ", "").Trim() != "")
                 if (m_SubMidWindow.m_MainForm.m_STDRuleslist.Grid_Minerals[i, j].Value.ToString().Replace(" ", "").Trim() != "")
@@ -499,55 +499,64 @@ namespace OTSPartA_STDEditor
                         {
                         {
                             m_SubMidWindow.m_MainForm.SaveDataOfSelRule(i, j);
                             m_SubMidWindow.m_MainForm.SaveDataOfSelRule(i, j);
 
 
-                            PropGrid.Focus(true);
-                            int selrow = PropGrid.Selection.ActivePosition.Row;
-                            int STDnum = (int)PropGrid[selrow, 1].Tag;
-
-                            int STDId = 1;
-                            foreach (KeyValuePair<int, STDdata> kv in m_SubMidWindow.m_MainForm.STDDictionary)
-                            {
-                                if (STDId < kv.Key)
-                                {
-                                    STDId = kv.Key;
-                                }
-                            }
-                            STDdata sT = new STDdata();
-                            sT.BSE = ReferenceDictionary[STDnum].BSE;
-                            sT.StrName = ReferenceDictionary[STDnum].StrName;
-                            sT.Color = ReferenceDictionary[STDnum].Color;
-                            sT.Density = ReferenceDictionary[STDnum].Density;
-                            sT.Expression = ReferenceDictionary[STDnum].Expression;
-                            sT.Formula = ReferenceDictionary[STDnum].Formula;
-                            sT.Hardness = ReferenceDictionary[STDnum].Hardness;
-                            sT.UsingImgPropertyList = ReferenceDictionary[STDnum].UsingImgPropertyList;
-                            sT.UsingOtherPropertyList = ReferenceDictionary[STDnum].UsingOtherPropertyList;
-                            sT.KeyElementList = ReferenceDictionary[STDnum].KeyElementList;
-                            sT.SubElementList = ReferenceDictionary[STDnum].SubElementList;
-                            sT.Electrical_conductivity = ReferenceDictionary[STDnum].Electrical_conductivity;
-                            sT.Element = ReferenceDictionary[STDnum].Element;
-                            sT.GroupId = ReferenceDictionary[STDnum].GroupId;
-
-                            m_SubMidWindow.m_MainForm.STDDictionary.Add(STDId + 1, sT);
-
-                            m_SubMidWindow.m_MainForm.m_STDRuleslist.AddNewRow(STDId + 1, sT.StrName, STDRuleslist.colorHx16toRGB(sT.Color));
-                            m_SubMidWindow.m_MainForm.m_STDRuleslist.Refresh();
-                            m_SubMidWindow.m_MainForm.m_STDRuleslist.PreRow = m_SubMidWindow.m_MainForm.m_STDRuleslist.Grid_Minerals.RowsCount - 1;
-
-                            for (int k = 0; k < ReferenceXrayList.Count; k++)
-                            {
-                                if (int.Parse(ReferenceXrayList[k].StdID) == STDnum)
-                                {
-                                    STDEditor.STDXray tDXray = new STDEditor.STDXray();
-                                    tDXray.StdID = (STDId + 1).ToString();
-                                    tDXray.XrayData = ReferenceXrayList[k].XrayData;
-                                    tDXray.InfoState = (int)STDEditor.STDXrayInfoState.Add;
-                                    m_SubMidWindow.m_STDEditor.m_STDXrayList.Add(tDXray);
-                                }
-                            }
+                            AddIntoMainLab();
                         }
                         }
                     }
                     }
                 }
                 }
             }
             }
+            else if(i==-1&&j==-1)
+            {
+                AddIntoMainLab();
+            }
+        }
+
+        void AddIntoMainLab()
+        {
+            PropGrid.Focus(true);
+            int selrow = PropGrid.Selection.ActivePosition.Row;
+            int STDnum = (int)PropGrid[selrow, 1].Tag;
+
+            int STDId = 1;
+            foreach (KeyValuePair<int, STDdata> kv in m_SubMidWindow.m_MainForm.STDDictionary)
+            {
+                if (STDId < kv.Key)
+                {
+                    STDId = kv.Key;
+                }
+            }
+            STDdata sT = new STDdata();
+            sT.BSE = ReferenceDictionary[STDnum].BSE;
+            sT.StrName = ReferenceDictionary[STDnum].StrName;
+            sT.Color = ReferenceDictionary[STDnum].Color;
+            sT.Density = ReferenceDictionary[STDnum].Density;
+            sT.Expression = ReferenceDictionary[STDnum].Expression;
+            sT.Formula = ReferenceDictionary[STDnum].Formula;
+            sT.Hardness = ReferenceDictionary[STDnum].Hardness;
+            sT.UsingImgPropertyList = ReferenceDictionary[STDnum].UsingImgPropertyList;
+            sT.UsingOtherPropertyList = ReferenceDictionary[STDnum].UsingOtherPropertyList;
+            sT.KeyElementList = ReferenceDictionary[STDnum].KeyElementList;
+            sT.SubElementList = ReferenceDictionary[STDnum].SubElementList;
+            sT.Electrical_conductivity = ReferenceDictionary[STDnum].Electrical_conductivity;
+            sT.Element = ReferenceDictionary[STDnum].Element;
+            sT.GroupId = ReferenceDictionary[STDnum].GroupId;
+
+            m_SubMidWindow.m_MainForm.STDDictionary.Add(STDId + 1, sT);
+
+            m_SubMidWindow.m_MainForm.m_STDRuleslist.AddNewRow(STDId + 1, sT.StrName, STDRuleslist.colorHx16toRGB(sT.Color));
+            m_SubMidWindow.m_MainForm.m_STDRuleslist.Refresh();
+            m_SubMidWindow.m_MainForm.m_STDRuleslist.PreRow = m_SubMidWindow.m_MainForm.m_STDRuleslist.Grid_Minerals.RowsCount - 1;
+
+            for (int k = 0; k < ReferenceXrayList.Count; k++)
+            {
+                if (int.Parse(ReferenceXrayList[k].StdID) == STDnum)
+                {
+                    STDEditor.STDXray tDXray = new STDEditor.STDXray();
+                    tDXray.StdID = (STDId + 1).ToString();
+                    tDXray.XrayData = ReferenceXrayList[k].XrayData;
+                    tDXray.InfoState = (int)STDEditor.STDXrayInfoState.Add;
+                    m_SubMidWindow.m_STDEditor.m_STDXrayList.Add(tDXray);
+                }
+            }
         }
         }
     }
     }
 }
 }

+ 132 - 107
OTSPartA_STDEditor/STDRuleslist.cs

@@ -68,8 +68,6 @@ namespace OTSPartA_STDEditor
             Grid_Minerals.Columns[0].Width = this.Width/2-10;
             Grid_Minerals.Columns[0].Width = this.Width/2-10;
             Grid_Minerals.Columns[1].Width = this.Width/2-20;
             Grid_Minerals.Columns[1].Width = this.Width/2-20;
 
 
-           
-            
 
 
             int i = 1;
             int i = 1;
             foreach (KeyValuePair<int, STDdata> kv in m_MainForm.STDDictionary)
             foreach (KeyValuePair<int, STDdata> kv in m_MainForm.STDDictionary)
@@ -129,43 +127,26 @@ namespace OTSPartA_STDEditor
             /// 保证鼠标点击的GRID行和列是有效的
             /// 保证鼠标点击的GRID行和列是有效的
             if (i >= 0 && j >= 0)
             if (i >= 0 && j >= 0)
             {
             {
-                if (i == 1)
-                {
-                    button_UpOrder.Enabled = false;
-                }
-                else
-                {
-                    button_UpOrder.Enabled = true;
-                }
-                if (i == ls_gd.RowsCount - 1)
-                {
-                    button_DownOrder.Enabled = false;
-                }
-                else
-                {
-                    button_DownOrder.Enabled = true;
-                }
-
-                if (PreRow != -1&& PreRow != Grid_Minerals.Selection.ActivePosition.Row)
-                {
-                    //规则名称不为空
-                    if (Grid_Minerals[i, 0].Value.ToString().Replace(" ", "").Trim() != "")
+                //    if (PreRow != -1&& PreRow != Grid_Minerals.Selection.ActivePosition.Row)
+                //    {
+                //规则名称不为空
+                if (Grid_Minerals[i, 0].Value.ToString().Replace(" ", "").Trim() != "")
                     {
                     {
-                        if (m_MainForm.CheckAttributes())
+                        if (m_MainForm.CheckAttributes()&& m_MainForm.Checktextbox_STDEditor())
                         {
                         {
-                            if (m_MainForm.Checktextbox_STDEditor())
-                            {
+                            //if (m_MainForm.Checktextbox_STDEditor())
+                            //{
                                 m_MainForm.SaveDataOfSelRule(PreRow, 0);
                                 m_MainForm.SaveDataOfSelRule(PreRow, 0);
                                 m_MainForm.ChangeSTDEditorAndGrid_Attributes(int.Parse(Grid_Minerals[i, 0].Tag.ToString()));
                                 m_MainForm.ChangeSTDEditorAndGrid_Attributes(int.Parse(Grid_Minerals[i, 0].Tag.ToString()));
                                 m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
                                 m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
                                 PreRow = i;
                                 PreRow = i;
-                            }
-                            else
-                            {
-                                Position pos = new Position(PreRow, 0);
-                                Grid_Minerals.Selection.Focus(pos, true);
-                                m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
-                            }
+                            //}
+                            //else
+                            //{
+                            //    Position pos = new Position(PreRow, 0);
+                            //    Grid_Minerals.Selection.Focus(pos, true);
+                            //    m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
+                            //}
                         }
                         }
                         else
                         else
                         {
                         {
@@ -180,16 +161,22 @@ namespace OTSPartA_STDEditor
                         Grid_Minerals.Selection.Focus(pos, true);
                         Grid_Minerals.Selection.Focus(pos, true);
                         m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
                         m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
                     }
                     }
-                }
-                else
-                {
-                    m_MainForm.ChangeSTDEditorAndGrid_Attributes(int.Parse(Grid_Minerals[i, 0].Tag.ToString()));
-                    PreRow = i;
-                    m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
-                }
+                //    }
+                //    else
+                //    {
+                //        m_MainForm.ChangeSTDEditorAndGrid_Attributes(int.Parse(Grid_Minerals[i, 0].Tag.ToString()));
+                //        PreRow = i;
+                //        m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
+                //    }
             }
             }
-        }
 
 
+            SetOrderButtonsStatus();
+        }
+        /// <summary>
+        /// 新建
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
         private void ToolStripMenuItem_New_Click(object sender, EventArgs e)
         private void ToolStripMenuItem_New_Click(object sender, EventArgs e)
         {
         {
             int i = Grid_Minerals.Selection.ActivePosition.Row;
             int i = Grid_Minerals.Selection.ActivePosition.Row;
@@ -220,6 +207,7 @@ namespace OTSPartA_STDEditor
                 AddNewRow(STDId, "NewRuleName", Color.Gray);
                 AddNewRow(STDId, "NewRuleName", Color.Gray);
                 m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
                 m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
             }
             }
+            //SetOrderButtonsStatus();
         }
         }
 
 
         public void AddNewRow(int STDId, string RuleName, Color color)
         public void AddNewRow(int STDId, string RuleName, Color color)
@@ -242,6 +230,7 @@ namespace OTSPartA_STDEditor
             Grid_Minerals.Selection.Focus(pos, true);
             Grid_Minerals.Selection.Focus(pos, true);
 
 
             PreRow = Grid_Minerals.Rows.Count - 1;
             PreRow = Grid_Minerals.Rows.Count - 1;
+            SetOrderButtonsStatus();
         }
         }
 
 
         void Grid_MineralsDelRow()
         void Grid_MineralsDelRow()
@@ -283,6 +272,7 @@ namespace OTSPartA_STDEditor
             {
             {
                 MessageBox.Show("There is no rule to delete!", "Tip");
                 MessageBox.Show("There is no rule to delete!", "Tip");
             }
             }
+            SetOrderButtonsStatus();
         }
         }
         private void ToolStripMenuItem_Del_Click(object sender, EventArgs e)
         private void ToolStripMenuItem_Del_Click(object sender, EventArgs e)
         {
         {
@@ -318,50 +308,44 @@ namespace OTSPartA_STDEditor
 
 
         private void Grid_Minerals_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
         private void Grid_Minerals_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
         {
         {
+            SourceGrid.Grid ls_gd = (SourceGrid.Grid)sender;
+            ls_gd.Focus();
+            int i = ls_gd.Selection.ActivePosition.Row;
+            int j = ls_gd.Selection.ActivePosition.Column;
+            if(i==-1)
+            {
+                return;
+            }
             if (e.KeyCode == Keys.Up)
             if (e.KeyCode == Keys.Up)
             {
             {
-                SourceGrid.Grid ls_gd = (SourceGrid.Grid)sender;
-                ls_gd.Focus();
-                int i = ls_gd.Selection.ActivePosition.Row;
-                int j = ls_gd.Selection.ActivePosition.Column;
-
-                if (i == 1)
-                {
-                    button_UpOrder.Enabled = false;
-                }
-                else
-                {
-                    button_UpOrder.Enabled = true;
-                }
-                if (i == ls_gd.RowsCount - 1)
-                {
-                    button_DownOrder.Enabled = false;
-                }
-                else
-                {
-                    button_DownOrder.Enabled = true;
-                }
-
                 /// 保证鼠标点击的GRID行和列是有效的
                 /// 保证鼠标点击的GRID行和列是有效的
                 if (i >= 2 && j >= 0)
                 if (i >= 2 && j >= 0)
                 {
                 {
                     //规则名称不为空
                     //规则名称不为空
                     if (Grid_Minerals[i, 0].Value.ToString().Replace(" ", "").Trim() != "")
                     if (Grid_Minerals[i, 0].Value.ToString().Replace(" ", "").Trim() != "")
                     {
                     {
-                        if (m_MainForm.CheckAttributes())
+                        if (m_MainForm.CheckAttributes()&& m_MainForm.Checktextbox_STDEditor())
                         {
                         {
-                            if (m_MainForm.Checktextbox_STDEditor())
-                            {
+                            //if (m_MainForm.Checktextbox_STDEditor())
+                            //{
                                 m_MainForm.SaveDataOfSelRule(i, 0);
                                 m_MainForm.SaveDataOfSelRule(i, 0);
                                 m_MainForm.ChangeSTDEditorAndGrid_Attributes(int.Parse(Grid_Minerals[i - 1, 0].Tag.ToString()));
                                 m_MainForm.ChangeSTDEditorAndGrid_Attributes(int.Parse(Grid_Minerals[i - 1, 0].Tag.ToString()));
                                 m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
                                 m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
                                 PreRow = i;
                                 PreRow = i;
+                            //}
+                            //else
+                            //{
+                            //    Position pos = new Position(i + 1, 0);
+                            //    Grid_Minerals.Selection.Focus(pos, true);
+                            //    m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
+                            //}
+                            if (i == 2)
+                            {
+                                button_UpOrder.Enabled = false;
                             }
                             }
-                            else
+                            if (i == ls_gd.RowsCount - 1)
                             {
                             {
-                                Position pos = new Position(i + 1, 0);
-                                Grid_Minerals.Selection.Focus(pos, true);
-                                m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
+                                button_DownOrder.Enabled = true;
                             }
                             }
                         }
                         }
                         else
                         else
@@ -381,48 +365,57 @@ namespace OTSPartA_STDEditor
             }
             }
             if (e.KeyCode == Keys.Down)
             if (e.KeyCode == Keys.Down)
             {
             {
-                SourceGrid.Grid ls_gd = (SourceGrid.Grid)sender;
-                ls_gd.Focus();
-                int i = ls_gd.Selection.ActivePosition.Row;
-                int j = ls_gd.Selection.ActivePosition.Column;
-
-                if (i == 1)
-                {
-                    button_UpOrder.Enabled = false;
-                }
-                else
-                {
-                    button_UpOrder.Enabled = true;
-                }
-                if (i == ls_gd.RowsCount - 1)
-                {
-                    button_DownOrder.Enabled = false;
-                }
-                else
-                {
-                    button_DownOrder.Enabled = true;
-                }
+                //SourceGrid.Grid ls_gd = (SourceGrid.Grid)sender;
+                //ls_gd.Focus();
+                //int i = ls_gd.Selection.ActivePosition.Row;
+                //int j = ls_gd.Selection.ActivePosition.Column;
+
+                //if (i == 1)
+                //{
+                //    button_UpOrder.Enabled = false;
+                //}
+                //else
+                //{
+                //    button_UpOrder.Enabled = true;
+                //}
+                //if (i == ls_gd.RowsCount - 1)
+                //{
+                //    button_DownOrder.Enabled = false;
+                //}
+                //else
+                //{
+                //    button_DownOrder.Enabled = true;
+                //}
 
 
                 /// 保证鼠标点击的GRID行和列是有效的
                 /// 保证鼠标点击的GRID行和列是有效的
                 if (i < ls_gd.RowsCount - 1 && j >= 0)
                 if (i < ls_gd.RowsCount - 1 && j >= 0)
                 {
                 {
                     //规则名称不为空
                     //规则名称不为空
-                    //if (Grid_Minerals[i, 0].Value.ToString().Replace(" ", "").Trim() != "")
-                    //{
-                        if (m_MainForm.CheckAttributes())
+                    if (Grid_Minerals[i, 0].Value.ToString().Replace(" ", "").Trim() != "")
+                    {
+                        if (m_MainForm.CheckAttributes()&& m_MainForm.Checktextbox_STDEditor())
                         {
                         {
-                            if (m_MainForm.Checktextbox_STDEditor())
-                            {
+                            //if (m_MainForm.Checktextbox_STDEditor())
+                            //{
                                 m_MainForm.SaveDataOfSelRule(i, 0);
                                 m_MainForm.SaveDataOfSelRule(i, 0);
                                 m_MainForm.ChangeSTDEditorAndGrid_Attributes(int.Parse(Grid_Minerals[i + 1, 0].Tag.ToString()));
                                 m_MainForm.ChangeSTDEditorAndGrid_Attributes(int.Parse(Grid_Minerals[i + 1, 0].Tag.ToString()));
                                 PreRow = i;
                                 PreRow = i;
                                 m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
                                 m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
+
+                            //}
+                            //else
+                            //{
+                            //    Position pos = new Position(i - 1, 0);
+                            //    Grid_Minerals.Selection.Focus(pos, true);
+                            //    m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
+                            //}
+                            if (i == 1)
+                            {
+                                button_UpOrder.Enabled = true;
                             }
                             }
-                            else
+                            if (i == ls_gd.RowsCount - 2)
                             {
                             {
-                                Position pos = new Position(i - 1, 0);
-                                Grid_Minerals.Selection.Focus(pos, true);
-                                m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
+                                button_DownOrder.Enabled = false;
                             }
                             }
                         }
                         }
                         else
                         else
@@ -431,13 +424,13 @@ namespace OTSPartA_STDEditor
                             Grid_Minerals.Selection.Focus(pos, true);
                             Grid_Minerals.Selection.Focus(pos, true);
                             m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
                             m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
                         }
                         }
-                    //}
-                    //else
-                    //{
-                    //    Position pos = new Position(i - 1, 0);
-                    //    Grid_Minerals.Selection.Focus(pos, true);
-                    //    m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
-                    //}
+                    }
+                    else
+                    {
+                        Position pos = new Position(i - 1, 0);
+                        Grid_Minerals.Selection.Focus(pos, true);
+                        m_MainForm.m_SubMidWindow.m_ComparativeLibrary.MakeCheckboxUnchecked();
+                    }
                 }
                 }
             }
             }
             if (e.KeyCode == Keys.Delete)
             if (e.KeyCode == Keys.Delete)
@@ -588,11 +581,43 @@ namespace OTSPartA_STDEditor
             Grid_Minerals.Selection.Focus(pos, true);
             Grid_Minerals.Selection.Focus(pos, true);
 
 
             PreRow = Grid_Minerals.Selection.ActivePosition.Row - 1;
             PreRow = Grid_Minerals.Selection.ActivePosition.Row - 1;
+            SetOrderButtonsStatus();
         }
         }
 
 
         private void Grid_Minerals_VScrollPositionChanged(object sender, ScrollPositionChangedEventArgs e)
         private void Grid_Minerals_VScrollPositionChanged(object sender, ScrollPositionChangedEventArgs e)
         {
         {
             //Grid_Minerals.Refresh();
             //Grid_Minerals.Refresh();
         }
         }
+
+        void SetOrderButtonsStatus()
+        {
+            Grid_Minerals.Focus();
+            int i = Grid_Minerals.Selection.ActivePosition.Row;
+            int j = Grid_Minerals.Selection.ActivePosition.Column;
+            if (i != -1)
+            {
+                if (i == 1)
+                {
+                    button_UpOrder.Enabled = false;
+                }
+                else
+                {
+                    button_UpOrder.Enabled = true;
+                }
+                if (i == Grid_Minerals.RowsCount - 1)
+                {
+                    button_DownOrder.Enabled = false;
+                }
+                else
+                {
+                    button_DownOrder.Enabled = true;
+                }
+            }
+            else
+            {
+                button_UpOrder.Enabled = false;
+                button_DownOrder.Enabled = false;
+            }
+        }
     }
     }
 }
 }