zoukankan      html  css  js  c++  java
  • 关于sendtoback()和bringtofront() 的理解

     如下的代码:

    button2.Dock = DockStyle.Top;

    button1.SendToBack();

    button1.Dock = DockStyle.Top;

    button3.Dock = DockStyle.Bottom;

    运行后,3个button的顺序始终为:

    button1

    button2

    button3

    如果代码改为:

    button2.Dock = DockStyle.Top;

    button1.Dock = DockStyle.Top;

    button3.Dock = DockStyle.Bottom;

    运行后,3个button的顺序始终为:

    button2

    button1

    button3

    如果代码改为:

     button1.Dock = DockStyle.Top;
    button2.Dock = DockStyle.Bottom;
    button3.SendToBack();
    button3.Dock = DockStyle.Bottom;

    运行后,3个button的顺序始终为:

    button1

    button2

    button3

    如果代码改为:

                button3.SendToBack();
                button3.Dock = DockStyle.Top;
                button2.SendToBack();
                button2.Dock = DockStyle.Top;
                button1.SendToBack();
                button1.Dock = DockStyle.Top;

    运行后,3个button的顺序始终为:

    button1

    button2

    SendToBack() 将控件移到 Z 顺序的后面。

    BringToFront()将控件移到 Z 顺序的前面。

     
     
     
    Z顺序指的是:在Windows中桌面以及Form都是二维的,也就是X和Y轴,那么Z轴在哪里呢?  其实,Z轴就是垂直于桌面和Form的方向,这个方向上的排列就叫Z顺序。
    Windows窗体的Z顺序就是桌面上所有窗口的在Z轴上的排列; 
    而控件的Z顺序则是控件所在的父容器上的所有控件的在该父容器得的Z轴上的排列; 
     

    .NET中,控件的Dock属性是将控件做X和Y方向上的排列。这个属性设置后,排列的先后顺序,是与控件被加载的顺序有关的 
    控件的SendToBack和BringToFront两个方法,就是用来改变Z方向上的排列顺序的,简单说就是控件或者Form在其父容器或桌面上的叠放层次。所以他们不是用来改变在X和Y方向上的排列的。 

    要想改变那三个Button的前后顺序,可以在解决方案管理器中找到它所在的窗体,然后点击窗体节点前面的+号,将节点展开,然后双击“你的窗体名称.Designer.cs”打开窗体设计文件来修改调整这三个按钮被Controls.Add(...)的先后顺序,即可达到改变Dock上下顺序目的。 
  • 相关阅读:
    [bzoj1911][Apio2010特别行动队] (动态规划+斜率优化)
    [bzoj1597][usaco2008 mar]土地购买 (动态规划+斜率优化)
    [bzoj1901][zoj2112][Dynamic Rankings] (整体二分+树状数组 or 动态开点线段树 or 主席树)
    整体二分初步
    bzoj[3238][ahoi差异]
    概率dp学习
    poj[2104]K-th Number
    hdu[1711]number sequence
    hdu[2222]keywords search
    poj[1187][Noi 01]陨石的秘密
  • 原文地址:https://www.cnblogs.com/rosesmall/p/8134137.html
Copyright © 2011-2022 走看看