From 3d429071ceeda5ce75ca660c13459c13f3d92337 Mon Sep 17 00:00:00 2001
From: lu <99954486@qq.com>
Date: 星期三, 26 二月 2025 10:30:11 +0800
Subject: [PATCH] 调拨

---
 DevApp/Gs.DevApp/ToolBox/DragResizeHelp.cs |   87 +++++++++++++++++++++++++++++++++----------
 1 files changed, 67 insertions(+), 20 deletions(-)

diff --git a/DevApp/Gs.DevApp/ToolBox/DragResizeHelp.cs b/DevApp/Gs.DevApp/ToolBox/DragResizeHelp.cs
index 3e9f1f1..f622ba7 100644
--- a/DevApp/Gs.DevApp/ToolBox/DragResizeHelp.cs
+++ b/DevApp/Gs.DevApp/ToolBox/DragResizeHelp.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing DevExpress.XtraBars.Docking;
+using System;
 using System.Drawing;
 using System.Windows.Forms;
 
@@ -13,14 +14,14 @@
         private const int MinHeight = 30;
         private EnumMousePointPosition m_MousePointPosition;
         private Point p, p1;
-        private DevExpress.XtraEditors.LabelControl sbMsg;
         private Control dragBox1;//瀹瑰櫒1
-        private string dragCurrent_Name = "";//褰撳墠瀹瑰櫒鐨勫悕绉�
-
+        private string dragBoxCurrentName = "";//褰撳墠瀹瑰櫒鐨勫悕绉�
+        private Control ctrlCurrentObj;//褰撳墠鎷栨嫋鍔ㄧ殑瀵瑰儚
         private DevExpress.XtraBars.Docking.DockManager dockManager1;
         private DevExpress.XtraBars.Docking.DockPanel dockPanel1;
         private DevExpress.XtraBars.Docking.ControlContainer dockPanel1_Container;
         private System.ComponentModel.IContainer components = null;
+        private ToolTip toolTip;
         #endregion
         #region Inner Object
         private enum EnumMousePointPosition
@@ -37,11 +38,11 @@
             MouseDrag = 9   // '榧犳爣鎷栧姩
         }
         #endregion
-        public DragResizeHelp(DevExpress.XtraEditors.XtraForm frm, Control regBox, DevExpress.XtraEditors.LabelControl regMsg)
+        public DragResizeHelp(DevExpress.XtraEditors.XtraForm frm, Control regBox)
         {
+            toolTip = new ToolTip();
             this.components = new System.ComponentModel.Container();
             dragBox1 = regBox;
-            sbMsg = regMsg;
             this.components = new System.ComponentModel.Container();
             this.dockManager1 = new DevExpress.XtraBars.Docking.DockManager(this.components);
             dockManager1.BeginUpdate();
@@ -81,7 +82,7 @@
             this.dockPanel1.Name = "dockPanel1";
             this.dockPanel1.OriginalSize = new System.Drawing.Size(200, 200);
             this.dockPanel1.Size = new System.Drawing.Size(306, 459);
-            this.dockPanel1.Text = "dockPanel1";
+            this.dockPanel1.Text = "缁勪欢绠�";
             dockPanel1.Options.AllowDockBottom = false;
             dockPanel1.Options.AllowDockFill = false;
             dockPanel1.Options.AllowDockLeft = false;
@@ -103,7 +104,7 @@
             frm.AutoScaleDimensions = new System.Drawing.SizeF(8F, 18F);
             frm.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
             frm.ClientSize = new System.Drawing.Size(1057, 660);
-           
+
             ((System.ComponentModel.ISupportInitialize)(this.dockManager1)).EndInit();
             this.dockPanel1.ResumeLayout(false);
             frm.ResumeLayout(false);
@@ -117,7 +118,6 @@
                 {
                     if (control != null)
                     {
-
                         control.MouseDown -= new MouseEventHandler(control_MouseDown);
                         control.MouseLeave -= new EventHandler(control_MouseLeave);
                         control.MouseMove -= new MouseEventHandler(control_MouseMove);
@@ -129,19 +129,25 @@
         }
         public void Show()
         {
+            if (dockPanel1.Visibility == DockVisibility.Visible)
+                return;
             foreach (Control control in dragBox1.Controls)
             {
                 if (control != null)
                 {
-                    dragCurrent_Name = dragBox1.Name;
+                    dragBoxCurrentName = dragBox1.Name;
                     control.MouseDown += new MouseEventHandler(control_MouseDown);
                     control.MouseLeave += new EventHandler(control_MouseLeave);
                     control.MouseMove += new MouseEventHandler(control_MouseMove);
                     control.MouseUp += Control_MouseUp;
                     control.Resize += myPanel_Resize;
+                    control.ContextMenuStrip = new ContextMenuStrip();
+
                 }
             }
             dockPanel1.Show();
+            isDragging = true;
+           
         }
         public void Hide(Control control)
         {
@@ -150,16 +156,20 @@
                 control.MouseDown -= new MouseEventHandler(control_MouseDown);
                 control.MouseLeave -= new EventHandler(control_MouseLeave);
                 control.MouseMove -= new MouseEventHandler(control_MouseMove);
+                control.MouseUp -= Control_MouseUp;
+                control.Resize -= myPanel_Resize;
             }
             dockPanel1.Hide();
+            isDragging = false;
         }
         #region Public Method
         private void Control_MouseUp(object sender, MouseEventArgs e)
         {
             Control lCtrl = (sender as Control);
+            ctrlCurrentObj = lCtrl;
             (sender as Control).Refresh();
-            dragCurrent_Name = (sender as Control).Parent.Name;
-            if (dragBox1.Name == dragCurrent_Name)
+            dragBoxCurrentName = (sender as Control).Parent.Name;
+            if (dragBox1.Name == dragBoxCurrentName)
             {
                 if (IsOutsideBounds(lCtrl, dragBox1))
                 {
@@ -168,11 +178,11 @@
                     lCtrl.Left = 0;
                     lCtrl.Top = 10;
                     //   isDragging = false;
-                    dragCurrent_Name = dockPanel1_Container.Name;
+                    dragBoxCurrentName = dockPanel1_Container.Name;
                 }
                 reloadLoaction(null);
             }
-            else if (dockPanel1_Container.Name == dragCurrent_Name)
+            else if (dockPanel1_Container.Name == dragBoxCurrentName)
             {
                 if (IsOutsideBounds(lCtrl, dockPanel1_Container))
                 {
@@ -181,7 +191,7 @@
                     lCtrl.Left = 0;
                     lCtrl.Top = 10;
                     // isDragging = false;
-                    dragCurrent_Name = dragBox1.Name;
+                    dragBoxCurrentName = dragBox1.Name;
                 }
                 reloadLoaction(lCtrl);
             }
@@ -194,7 +204,34 @@
             p1.X = e.X;
             p1.Y = e.Y;
             isDragging = true;
-            dragCurrent_Name = (sender as Control).Parent.Name;
+            dragBoxCurrentName = (sender as Control).Parent.Name;
+            ctrlCurrentObj = (sender as Control);
+
+            if (e.Button == MouseButtons.Right)
+            {
+                Control control = (sender as Control);
+                var menu = control.ContextMenuStrip;
+                menu.Items.Clear();
+                SetDrag frm = new SetDrag();
+                menu.Items.Add($"璁剧疆鍧愭爣", null, (ss, ee) =>
+                {
+                    frm.ShowDialog();
+                });
+                menu.Items.Add($"璁剧疆澶у皬", null, (ss, ee) =>
+                {
+                    frm.ShowDialog();
+                });
+                menu.Items.Add($"楂樼骇璁剧疆", null, (ss, ee) =>
+                {
+                    frm.ShowDialog();
+                });
+                menu.Items.Add($"涓�閿噸鎺�", null, (ss, ee) =>
+                {
+                    frm.ShowDialog();
+                });
+                menu.Show(control, e.Location);
+            }
+
         }
         private void myPanel_Resize(object sender, EventArgs e)
         {
@@ -216,11 +253,13 @@
             m_MousePointPosition = EnumMousePointPosition.MouseSizeNone;
             Control control = sender as Control;
             control.Cursor = Cursors.Arrow;
+            ctrlCurrentObj = control;
         }
         private void control_MouseMove(object sender, MouseEventArgs e)
         {
             if (!isDragging) { return; }
             Control lCtrl = (sender as Control);
+            ctrlCurrentObj = lCtrl;
             if (e.Button == MouseButtons.Left)
             {
                 switch (m_MousePointPosition)
@@ -331,6 +370,8 @@
             }
             //  reloadLoaction();
             reloadMsg(lCtrl);
+ 
+           
         }
         private EnumMousePointPosition MousePointPosition(Size size, System.Windows.Forms.MouseEventArgs e)
         {
@@ -435,7 +476,7 @@
         private void reloadLoaction(Control cocccc)
         {
             int _top = 0;
-            if (dockPanel1_Container.Name == dragCurrent_Name)
+            if (dockPanel1_Container.Name == dragBoxCurrentName)
             {
                 foreach (Control col in dockPanel1_Container.Controls)
                 {
@@ -466,9 +507,15 @@
             return;
         }
 
-        private void reloadMsg(Control cocccc) {
-
-            sbMsg.Text = "鍧愭爣:" + cocccc.Location.ToString() + ",澶у皬锛�" + cocccc.Size.ToString();
+        private void reloadMsg(Control cocccc)
+        {
+            System.Text.StringBuilder sb = new System.Text.StringBuilder();
+            if (ctrlCurrentObj != null)
+                sb.Append(ctrlCurrentObj.Name + "鍦�");
+            sb.Append(string.IsNullOrEmpty(dragBoxCurrentName) ? "琛ㄥ崟涓�" : "缁勪欢绠变腑");
+            sb.Append("锛屽潗鏍�:" + cocccc.Location.ToString());
+            sb.Append(",澶у皬锛�" + cocccc.Size.ToString());
+            toolTip.SetToolTip(ctrlCurrentObj, sb.ToString());
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3