bianbian coding life

便便代码人生: 关注技术, 翻译文档, 偶尔动动手

[原]C#里更改控件的显示Z顺序

Posted by bianbian on 2007-03-01 23:00

本文Tags: , , ,

Z顺序(Z-Index)就是控件在绘制时候哪个在上哪个在下的顺序,就像PhotoShop里面的图层顺序。这个是很有用的,最早的虚拟形象(QQShow之类)就是利用Z顺序将N多小图片组合在一起拼合成一张图片,用图层相互覆盖的原理显示复杂的虚拟形象。扯远了,其实简单的说就是如下所示(B的Z-Index比A大,于是遮住了重叠的部分):
z-index.GIF
可是今天在C#里找了半天也没有发现设置Z顺序的方法。真是郁闷得紧。
于是想看看C#的设计器是怎么实现的,用设计器分别设计了A重叠B和B重叠A(又怀念Delphi一下),查看Design的源代码,OMG,还是没有涉及Z-Index的方法。。。
再看了一下,看来只跟Add到this.Controls里面的顺序有关了。验证了一下,果然如此:先Add的控件会在最上面。。。。。真是汗颜。。。。。
知道了原理,想个解决办法也不难了:就是Add控件进this.Controls之前根据啥属性(我看Tag属性挺好的)排个序。
如果需要运行中间改变某个控件的Z顺序,我看只能在this.Controls里综合运用Remove、Add了。。。
试验了一下,是可以的,代码写得实在太丑了,我就不献丑了。:(

标签: , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

2 Responses to “[原]C#里更改控件的显示Z顺序”

  1. toopoolin Says:

    不用这么麻烦
    BringToFront()
    SendToBack()
    控件里面有这2个方法可以改变Z顺序

  2. bianbian Says:

    两个当然不用这么麻烦,N个呢。呵呵。我处理的就是N层的情况。

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

(required)