zoukankan      html  css  js  c++  java
  • 浮动控件

        春节期间作了一个浮动的控件,照着windows MDI创体做的,感觉还挺有意识的,放上来记录一下,呵呵。

    标尺 和 网格 有的代码是来原于网络,具体作者是谁不记得了,谢过了。也拜个年了。

    codeproject上有篇文章不错的,是画标尺的 
    http://www.codeproject.com/cs/miscctrl/ruler.asp

    先来个画面截图把

    浮动panel运行截图

    上图中SubFrom1和SubFrom2就是两个浮动控件,他们可以改变大小,前端表示,最大化,复原等一些动作。
    当然了还可以在里面添加其他的控件, 其中SubForm1中加就添加了一个标尺的控件,
    添加方法如下

    浮动控件中添加其他控件

    下面把几个主要的功能的实现说一下,
    1· 鼠标按下这个控件前端显示,
       先是捕获整个控件的上的左键按下事件,然后使用了Controls.SetChildIndex() 方法来控制Z轴的次序。
    代码如下

     1protected override void WndProc(ref   Message m)
     2{
     3    // 右键按下
     4    // LBUTTONDOWN
     5    if (m.Msg == 0x210)
     6    {
     7        if (!(isMaxSize || this.Equals(Parent.TopLevelControl)))
     8        {
     9            this.Parent.Controls.SetChildIndex(this0);
    10        }

    11    }

    12    base.WndProc(ref   m);
    13}

    上面代码中的 0x210 查了老半天也没有查到,后来在代码中加Debug才得到的,太苯了 呵呵!

    2·控件的移动
        开始没有控制移动的范围,结果移到窗口外边了,在也找不到了。

    控件移动

    3·最大化与复原
    在最大化的时候除了要记住开始的大小外,还要记住位置。

    最大化与复原

    4·控件容器。
      在控件中方一个panel用于来放置其他控件 然后覆盖父类的Controls方法,返回panel的Controls,
    这时需要注意一下,应该在执行完InitializeComponent()之后才能让它返回panel的Controls。
    否则还是返回基类的Controls。

    public new ControlCollection Controls

    整个工程的代码浮动控件

    今天就到这儿了。
  • 相关阅读:
    vue单页面项目返回上一页无效,链接变化了,但是页面没有变化
    H5页面在iOS网页中的数字被识别为电话号码,字体颜色变黑色,且颜色不可改变
    vue-quill-editor 封装成组件;图片文件流上传;同一页面多个编辑器样式异常解决办法
    React 从零搭建项目 使用 create-react-app脚手架
    使用git pull文件时和本地文件冲突怎么办?
    webpack打包vue项目,资源路径如何从绝对路径改为相对路径?css中的图片资源如何修改配置?
    前端使用JS-SDK上传图片(文件)到七牛
    vue图片裁剪插件vue-cropper
    小程序图片裁剪组件
    微信小程序1rpx border ios真机显示不全问题
  • 原文地址:https://www.cnblogs.com/sun_moon_earth/p/655044.html
Copyright © 2011-2022 走看看