如何:控制停靠行为 SendToBack()

本文介绍了解决.NET Framework中控件停靠布局问题的方法,包括调整控件添加顺序和使用Z顺序控制工具。通过实例演示了如何避免控件遮挡问题。

如何:控制停靠行为

.NET Framework 3.5
此主题尚未评级 - 评价此主题

更新:2007 年 11 月

 

当使用停靠功能时,将控件添加到窗体时所使用的顺序可影响屏幕上控件的布局。如果没有按照正确的顺序添加控件,则这些控件不会总是在屏幕上的预期位置出现。

将控件添加到窗体时所使用的顺序会对 Z 顺序产生影响,当在一个父控件中停靠多个控件时,Z 顺序将决定布局逻辑。第一个添加到父控件中的控件将位于 Z 顺序的底部,而随后添加的控件将按顺序向上叠加。如果试图将两个控件停靠在一个父控件中的同一区域以便将一个控件置于另一个控件旁边,则 Z 顺序中更靠后的控件在得到的布局中靠前。例如,在典型方案中,如果将两个控件的 Dock 属性设置为 Top,Z 顺序中更靠后的控件将在屏幕上的父控件的顶部出现。

不过,当控件的 Dock 属性设置为 Fill 时,此问题可能会导致一个控件遮蔽另一个控件。例如,按照错误顺序添加到窗体的两个控件可能会出现在屏幕的顶部,若只希望将其中一个控件放置在此位置,则一个控件将会遮蔽另一个控件。

如果出现任何布局问题,必须调整受影响的控件的 Z 顺序。修复此问题所需的步骤会因将控件添加到窗体时是否使用了设计器而有所不同。

button1.Dock = SendToBack();将控件button1发送到Z顺序的底部

控制停靠布局

  • 更正将相关控件添加到窗体时所使用的顺序。

    有这样一个示例,其中以编程方式将 TreeView 控件和 Button 控件添加到 Panel 控件中。TreeView 控件的 Dock 属性设置为 Fill,而 Button 控件的 Dock 属性设置为 TopTreeView 控件会部分遮蔽 Button 控件。将 TreeViewButton 控件添加到 Panel 的代码可能类似于下面这样:

    this.panel1.Controls.Add(this.button1);
    this.panel1.Controls.Add(this.treeView1);
    

    要修复此问题,请更改将这些控件添加到面板中时所使用的顺序。

    this.panel1.Controls.Add(this.treeView1);
    this.panel1.Controls.Add(this.button1);
    

    或者,对其中的一个控件使用 BringToFrontSendToBack 方法。

使用设计器控制停靠布局

  1. 选择一个在窗体上的错误位置出现的控件。

  2. 根据所需布局,右键单击该控件并选择“置于底层”

    - 或 -

    右键单击该控件并选择“置于顶层”

  3. 如果涉及到其他控件,则可以对这些控件重复第 2 步(必要时),直到更正停靠行为。

说明:

如果涉及到多个控件,建议您使用“文档大纲”窗口来控制 Z 顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值