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