使用SuspendLayout和ResumeLayout
许多 Windows 窗体控件(例如,ListView 和 TreeView 控件)都实现了 SuspendLayout 和 ResumeLayout 方法,它们能够防止控件在添加子控件时创建多个布局事件。如果您的控件以编程方式添加和删除子控件或者执行动态布局,则您应该调用 SuspendLayout 和 ResumeLayout 方法。通过 SuspendLayout 方法,可以在控件上执行多个操作,而不必为每个更改执行布局。例如,如果您调整控件的大小并移动控件,则每个操作都将引发单独的布局事件。这些方法按照与 BeginUpdate 和 EndUpdate 方法类似的方式操作,并且在性能和用户界面稳定性方面提供相同的好处。下面的示例以编程方式向父窗体中添加按钮:
[C#]
private void AddButtons()
{
// Suspend the form layout and add two buttons.
this.SuspendLayout();
Button buttonOK = new Button();
buttonOK.Location = new Point(10, 10);
buttonOK.Size = new Size(75, 25);
buttonOK.Text = "OK";
Button buttonCancel = new Button();
buttonCancel.Location = new Point(90, 10);
buttonCancel.Size = new Size(75, 25);
buttonCancel.Text = "Cancel";
this.Controls.AddRange(new Control[]{buttonOK, buttonCancel});
this.ResumeLayout();
}
[Visual Basic .NET]
Private Sub AddButtons()
' Suspend the form layout and add two buttons
Me.SuspendLayout()
Dim buttonOK As New Button
buttonOK.Location = New Point(10, 10)
buttonOK.Size = New Size(75, 25)
buttonOK.Text = "OK"
Dim buttonCancel As New Button
buttonCancel.Location = New Point(90, 10)
buttonCancel.Size = New Size(75, 25)
buttonCancel.Text = "Cancel"
Me.Controls.AddRange(New Control() { buttonOK, buttonCancel } )
Me.ResumeLayout()
End Sub
每当您添加或删除控件、执行子控件的自动布局或者设置任何影响控件布局的属性(例如,大小、位置、定位点或停靠属性)时,您都应该使用 SuspendLayout 和 ResumeLayout 方法。
转自:http://jsj.xdf.cn/201111/954249.html
使用SuspendLayout和ResumeLayout相关推荐
- [c#.net]SuspendLayout 和 ResumeLayout
2019独角兽企业重金招聘Python工程师标准>>> 在Designer中会看到这两个方法,究竟是做什么用的呢? 一般在加载所有控件之前SuspendLayout方法,挂起所有控件 ...
- SuspendLayout 和 ResumeLayout
在Designer中会看到这两个方法,究竟是做什么用的呢? 一般在加载所有控件之前SuspendLayout方法,挂起所有控件在界面的逻辑布局事件,等又有布局代码完后再调用 ResumeLayout事 ...
- suspendlayout,resumelayout,layout,performlayout【转】
suspendlayout,resumelayout,layout,performlayout 1, 1.什么时候会触发control.layout事件? 当控件本身的大小(size)改变时会发生本控 ...
- SuspendLayout 和 ResumeLayout挂起布局
一般在加载所有控件之前SuspendLayout方法,挂起所有控件在界面的逻辑布局事件,等又有布局代码完后再调用 ResumeLayout事件吧刚才挂起的逻辑布局一并执行. 例如我们在设置初始化控件时 ...
- WinForm 中 Control.SuspendLayout, Control.ResumeLayout, PerformLayout 之间的关系
一般情况: 在VS视图模式下设计窗体对象后,其 InitializeComponent 方法体一般如下: private void InitializeComponent(){ // 创建各控件实例 ...
- C# WinForm中的SuspendLayout、ResumeLayout、PerformLayou
问题 通常我们在设置子控件的一些与外观.布局有关的属性时,比如Size.Location.Anchor或Dock等,会激发子控件的 Layout事件,并可能会引起窗口重绘.当子控件较多时,如果频繁设置 ...
- SuspendLayout 和 ResumeLayout 方法
通常我们在设置子控件的一些与外观.布局有关的属性时,比如Size.Location.Anchor 或 Dock等,会激发子控件的Layout事件,并可能会引起窗口重绘,当子控件较多时,如果频繁 ...
- 关于动态创建控件性能提高 以及 SuspendLayout ResumeLayout 的使用
今天看UI设计 看到这个问题 参考地址:http://www.csharpwin.com/csharpspace/12492r4352.shtml 之后查的 msdn 的方法介绍 :http:// ...
- Control.SuspendLayout 方法
SuspendLayout 方法是临时挂起控件的布局逻辑. 命名空间: System.Windows.Forms 程序集: System.Windows.Forms(在 system.windows. ...
最新文章
- 基于Sentinel的Redis3.2高可用方案
- java 原子引用_Java 原子性引用 AtomicReference
- 参会全攻略 | 倒计时 7 天!30+ 位重量级嘉宾“聊”什么?
- “熊猫烧香”式的病毒营销
- win11 wsl及ubuntu设置为wsl 2
- Redis整合Spring结合使用缓存实例
- LiveVideoStackCon 专题评审团招募进行中
- Unity 2017 Game Optimization 读书笔记 Dynamic Graphics(2)
- 通过mysql show processlist 命令检查mysql锁的方法
- 漫谈惯性、视觉暂留、潜意识、混合动力发动机、先入为主 - 纯粹的无厘头?...
- 使用Python模拟蒙蒂霍尔悖论游戏
- mysql mmm vip_MySQL MMM架构看不到vip地址
- Java添加事件监听的四种方法代码实例
- office 2010安装包
- 帝国cms php超时,帝国CMS后台登录超时、登录错误5次限制的解决办法
- mysql配置报错thread_MySQL错误Forcing close of thread的两种解决方法
- python精彩语句(来日方长,慢慢录入)
- LSH 近似最近邻查找
- 计算机系统基础-入门
- python莫比乌斯内接矩形_用莫比乌斯带巧解内接矩形问题:拓扑学的用处
热门文章
- 武汉东方y神话服饰有限公司
- SSD和Ramdisk的配合简直就是天衣无缝,固态硬盘长生不老,全靠它。
- IOException parsing XML document from class path resource [applicationContext.xml]
- 学生如何使用chatGTP提升学习能力?
- 化妆步骤!! - 生活至上,美容至尚!
- Windows驱动匹配详解
- 探访“中国水仙花之乡”:祖辈留下来的,要传承发展好
- html的marquee标签,marquee 标签参数详细说明
- Pyramid of Glasses 酒杯金字塔 [CF-676B]
- 内网服务器自建 yum、epel 源仓库