• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C# ToolStrip制作四边停靠浮动工具栏

C# ToolStrip制作四边停靠浮动工具栏

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#浮动工具栏,浮动工具栏,cad浮动工具栏,word浮动工具栏,excel浮动工具栏等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

关于浮动工具条的制作,阿捷写了一篇很不错的文章,见:http://www.weikejianghu.com/article/44272.htm
阿捷这个工具条浮动后只能在顶部停靠,基于此,我在这边增加在左/右/底部停靠,停靠条件是浮动窗体紧贴或越过主窗体边缘。

其实阿捷给出的代码已经相当详细了:) 我这里主要给出重写的ToolStrip代码段,增加了三个ToolStripPanel

        #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
                {
                    this.FloatWindow.Controls.Remove(this);
                    this.LeftToolStripPanel.SuspendLayout();
                    this.LeftToolStripPanel.Controls.Add(this);
                    this.Location = this.LeftToolStripPanel.PointToClient(toolBarLoc);
                    this.LeftToolStripPanel.ResumeLayout();
                    this.FloatWindow.Dispose();
                    this.FloatWindow = null;
                    return;
                }
                if (toolBarLoc.X + FloatWindow.Width >= this.TopToolStripPanel.Parent.Width) //置于右边StripPanel
                {
                    this.FloatWindow.Controls.Remove(this);
                    this.RightToolStripPanel.SuspendLayout();
                    this.RightToolStripPanel.Controls.Add(this);
                    this.Location = this.RightToolStripPanel.PointToClient(toolBarLoc);
              &nb

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C# ToolStrip制作四边停靠浮动工具栏
  • c#创建浮动工具栏功能示例

相关文章

  • 2017-05-28.net C# 实现任意List的笛卡尔乘积算法代码
  • 2017-05-28WPF自动隐藏的消息框的实例代码
  • 2017-05-28C#中方法的直接调用、反射调用与Lambda表达式调用对比
  • 2017-05-28C#泛型和反射实例解析
  • 2017-05-28详解C# 利用反射根据类名创建类的实例对象
  • 2017-05-28C#实现通过ffmpeg从flv视频文件中截图的方法
  • 2017-05-28C#实现DataSet内数据转化为Excel和Word文件的通用类完整实例
  • 2017-05-28关于C#.net winform程序验证moss的集成身份认证实例
  • 2017-05-28C# SqlHelper应用开发学习
  • 2017-05-28C#简单创建和删除目录的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C# for循环的经典案例集锦
    • C#装箱和拆箱操作实例分析
    • C#获取图片文件扩展名的方法
    • 详解C# 利用反射根据类名创建类的实例对象
    • windows中使用C# 调用 C语言生成的dll
    • C#获取指定文件著作权信息的方法
    • C# IP地址与整数之间转换的具体方法
    • C#各种数组的用法实例演示
    • C#同步和异步调用方法实例
    • C#中序列化实现深拷贝,实现DataGridView初始化刷新的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有