没有合适的资源?快使用搜索试试~ 我知道了~
首页C# ToolStrip制作四边停靠浮动工具栏
资源详情
资源评论
资源推荐

C# ToolStrip制作四边停靠浮动工具栏制作四边停靠浮动工具栏
主要介绍了C# ToolStrip浮动工具栏的制作,可以上/下/左/右停靠,代码在下面
关于浮动工具条的制作,阿捷写了一篇很不错的文章,见://www.jb51.net/article/44272.htm
阿捷这个工具条浮动后只能在顶部停靠,基于此,我在这边增加在左/右/底部停靠,停靠条件是浮动窗体紧贴或越过主窗体边
缘。
其实阿捷给出的代码已经相当详细了:) 我这里主要给出重写的ToolStrip代码段,增加了三个ToolStripPanel
复制代码 代码如下:
public partial class MyToolStrip : ToolStrip
{
public MyToolStrip()
{
InitializeComponent();
this.EndDrag += new EventHandler(MyToolStrip_EndDrag);
this.SizeChanged += new EventHandler(MyToolStrip_SizeChanged);
}
#region 漂浮状态
public ToolStripFloatWindow FloatWindow { get; set; }
private bool isFloating
{
get
{
return (FloatWindow != null);
}
}
public ToolStripPanel TopToolStripPanel { get; set; }
public ToolStripPanel BottomToolStripPanel { get; set; }
public ToolStripPanel LeftToolStripPanel { get; set; }
public ToolStripPanel RightToolStripPanel { get; set; }
#endregion
#region 漂浮实现
private void FloatWindow_LocationChanged(object sender, EventArgs e)
{
//当floatwindws的位置移动到 toolstrippanel中时,将this放置到 toolstripPanel上
if (this.FloatWindow == null)
{
return;
}
if (FloatWindow.HasCreated)
{
//主窗体位置
Point frmLoc = this.TopToolStripPanel.Parent.Location;
//浮动工具条位置
Point toolBarLoc = FloatWindow.Location;
if (toolBarLoc.Y - frmLoc.Y <= 0) //置于顶部StripPanel
{
this.FloatWindow.Controls.Remove(this);
this.TopToolStripPanel.SuspendLayout();
this.TopToolStripPanel.Controls.Add(this);
this.Location = this.TopToolStripPanel.PointToClient(toolBarLoc);
this.TopToolStripPanel.ResumeLayout();
this.FloatWindow.Dispose();
this.FloatWindow = null;
return;
}
if (toolBarLoc.X - frmLoc.X <= 0) //置于左边StripPanel










安全验证
文档复制为VIP权益,开通VIP直接复制

评论0