前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >C# ArcEngine 工具条拖放

C# ArcEngine 工具条拖放

作者头像
acoolgiser
发布2019-01-16 17:35:21
发布2019-01-16 17:35:21
7060
举报
文章被收录于专栏:acoolgiser_zhuanlanacoolgiser_zhuanlan

实现工具条拖放:

private ToolStripPanel tsPanel;   //定义全局变量,定义一个工具条容器,存放拖动出来的工具条

在窗体加载时设置属性(初始化的构造函数中也可以):

 FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;             ShowIcon = false;             ShowInTaskbar = false;             TopMost = true;

private FloatToolBarForm floatForm;

public FloatToolBarForm FloatForm()         {             get { return floatForm; }             set             {                 floatForm = value;                 if (floatForm != null)                 {                     floatForm.LocationChanged += new EventHandler(FloatToolBarForm_FormClosing);                     floatForm.FormClosing += new FormClosingEventHandler(FloatToolBarForm_FormClosing);                 }             }         }         private void FloatToolBarForm_FormClosing(object sender, FormClosingEventArgs e)         {             e.Cancel = true;         }         private void FloatToolBarForm_LocationChanged(object sender, EventArgs e)         {             //当floatwindws的位置移动到toolstrippanel中时,将this放置到 toolstripPanel上             if (this.floatForm == null)             {                 return;             }             else             {                 if (floatForm.HasCreated)                 {                     Point currentPt = new Point(floatForm.Location.X, floatForm.Location.Y);                     Point minPt = this.tsPanel.PointToScreen(tsPanel.Location);                     Point maxPt;                     if (this.tsPanel.Height <= 20)                     {                         maxPt = new Point(minPt.X + this.tsPanel.Width, minPt.Y + 20);                     }                     else                     {                         maxPt = new Point(minPt.X + this.tsPanel.Width, minPt.Y + this.tsPanel.Height);                     }                     if ((currentPt.X > minPt.X) && (currentPt.X < maxPt.X) && (currentPt.Y > minPt.Y - 25) && (currentPt.Y < maxPt.Y - 25))                     {                         this.floatForm.Controls.Remove(this);                         this.tsPanel.SuspendLayout();                         this.tsPanel.Controls.Add(this);                         this.Location = this.tsPanel.PointToClient(currentPt);                         this.tsPanel.ResumeLayout();                         this.floatForm.Dispose();                         this.floatForm = null;                     }                 }             }         }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年10月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档