From 97c16ca7943f36d1631a843df27628d5eada9eb2 Mon Sep 17 00:00:00 2001
From: lu <99954486@qq.com>
Date: 星期五, 07 三月 2025 16:09:20 +0800
Subject: [PATCH] 受托
---
DevApp/Gs.DevApp/ToolBox/DragResizeHelp.cs | 109 ++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 80 insertions(+), 29 deletions(-)
diff --git a/DevApp/Gs.DevApp/ToolBox/DragResizeHelp.cs b/DevApp/Gs.DevApp/ToolBox/DragResizeHelp.cs
index 3e9f1f1..a2f3b9b 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);
+ // 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) =>
+ {
+ reloadLoaction((sender as Control).Parent);
+ });
+ 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)
@@ -327,10 +366,12 @@
int height = control.Height;
Point[] ps = { new Point(0, 0),new Point(width - 1, 0),
new Point(width - 1, height - 1),new Point(0, height - 1),new Point(0, 0) };
- g.DrawLines(new Pen(Color.LightCoral), ps);
+ g.DrawLines(new Pen(Color.Pink), ps);
}
// reloadLoaction();
reloadMsg(lCtrl);
+
+
}
private EnumMousePointPosition MousePointPosition(Size size, System.Windows.Forms.MouseEventArgs e)
{
@@ -435,7 +476,8 @@
private void reloadLoaction(Control cocccc)
{
int _top = 0;
- if (dockPanel1_Container.Name == dragCurrent_Name)
+ //濡傛灉鏄帶浠剁锛屼笉绉籐eft
+ if (dockPanel1_Container.Name == dragBoxCurrentName)
{
foreach (Control col in dockPanel1_Container.Controls)
{
@@ -446,19 +488,22 @@
return;
}
if (cocccc == null) return;
- int x = 15;
- int y = 15;
+ //杩欐槸瀹瑰櫒
+ int x = 2;
+ int y = 2;
foreach (Control btn in dragBox1.Controls)
{
if (cocccc.Name == btn.Name)
continue;
- //btn.Left = x;
- //btn.Top = y;
- x += btn.Width + 15;
+ if (cocccc.Visible ==false)
+ continue;
+ btn.Left = x;
+ btn.Top = y;
+ x += btn.Width + 2;
if (btn.Width > dragBox1.Width - x)
{
- x = 15;
- y += btn.Height + 15;
+ x = 2;
+ y += btn.Height +2;
}
}
cocccc.Left = x;
@@ -466,9 +511,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