在Designer中会看到这两个方法,究竟是做什么用的呢?

一般在加载所有控件之前SuspendLayout方法,挂起所有控件在界面的逻辑布局事件,等又有布局代码完后再调用 ResumeLayout事件吧刚才挂起的逻辑布局一并执行。

例如我们在设置初始化控件时候,都会用到Size、Location、Anchor 或 Dock属性,而每一个属性都会去改变控件在界面上的布局,使得控件,每执行一段代码就就要界面重绘一次,那么我们先挂起所有事件,之后一起执行,这样就可以提高带有许多控件的应用程序的性能。

上文地址:http://hi.baidu.com/zouqiner/blog/item/a6118b4aa92391f982025ce9.html

下文地址:http://www.cnblogs.com/badnewfish/archive/2007/01/19/624298.html

临时挂起控件的布局逻辑

命名空间:System.Windows.Forms

程序集:System.Windows.Forms(在 system.windows.forms.dll 中)

语法:

C#

public void SuspendLayout ()

备注:

控件的布局逻辑被挂起,直到调用 ResumeLayout 方法为止。

当调整控件的多个属性时,将先后使用 SuspendLayout 和 ResumeLayout 方法取消多个 Layout 事件。例如,通常先调用 SuspendLayout 方法,然后设置控件的 Size、Location、Anchor 或 Dock 属性,最后调用ResumeLayout 方法以使更改生效。

SuspendLayout 调用必须等于零,然后才能成功调用 ResumeLayout。

注意

将多个控件添加到父控件时,建议在初始化要添加的控件之前调用 SuspendLayout 方法。将控件添加到父控件之后,调用 ResumeLayout 方法。这样就可以提高带有许多控件的应用程序的性能。

示例

下面的代码示例向窗体添加两个按钮(3个哦,其中一个是w)。该示例通过使用 SuspendLayout 和 ResumeLayout方法进行添加按钮。

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 button1 = new Button();

// Set the button to return a value of OK when clicked.

button1.DialogResult = DialogResult.OK;

// Add the button to the form.

Controls.Add(button1);

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();

}

SuspendLayout 和 ResumeLayout相关推荐

  1. [c#.net]SuspendLayout 和 ResumeLayout

    2019独角兽企业重金招聘Python工程师标准>>> 在Designer中会看到这两个方法,究竟是做什么用的呢? 一般在加载所有控件之前SuspendLayout方法,挂起所有控件 ...

  2. 使用SuspendLayout和ResumeLayout

    许多 Windows 窗体控件(例如,ListView 和 TreeView 控件)都实现了 SuspendLayout 和 ResumeLayout 方法,它们能够防止控件在添加子控件时创建多个布局 ...

  3. suspendlayout,resumelayout,layout,performlayout【转】

    suspendlayout,resumelayout,layout,performlayout 1, 1.什么时候会触发control.layout事件? 当控件本身的大小(size)改变时会发生本控 ...

  4. SuspendLayout 和 ResumeLayout挂起布局

    一般在加载所有控件之前SuspendLayout方法,挂起所有控件在界面的逻辑布局事件,等又有布局代码完后再调用 ResumeLayout事件吧刚才挂起的逻辑布局一并执行. 例如我们在设置初始化控件时 ...

  5. WinForm 中 Control.SuspendLayout, Control.ResumeLayout, PerformLayout 之间的关系

    一般情况: 在VS视图模式下设计窗体对象后,其 InitializeComponent 方法体一般如下: private void InitializeComponent(){ // 创建各控件实例 ...

  6. C# WinForm中的SuspendLayout、ResumeLayout、PerformLayou

    问题 通常我们在设置子控件的一些与外观.布局有关的属性时,比如Size.Location.Anchor或Dock等,会激发子控件的 Layout事件,并可能会引起窗口重绘.当子控件较多时,如果频繁设置 ...

  7. SuspendLayout 和 ResumeLayout 方法

    通常我们在设置子控件的一些与外观.布局有关的属性时,比如Size.Location.Anchor   或   Dock等,会激发子控件的Layout事件,并可能会引起窗口重绘,当子控件较多时,如果频繁 ...

  8. 关于动态创建控件性能提高 以及 SuspendLayout ResumeLayout 的使用

    今天看UI设计  看到这个问题 参考地址:http://www.csharpwin.com/csharpspace/12492r4352.shtml 之后查的  msdn 的方法介绍 :http:// ...

  9. Control.SuspendLayout 方法

    SuspendLayout 方法是临时挂起控件的布局逻辑. 命名空间: System.Windows.Forms 程序集: System.Windows.Forms(在 system.windows. ...

最新文章

  1. 复制链接到safari浏览器打开_JS实现复制到剪贴板(兼容FF/Chrome/Safari所有浏览器)...
  2. U盘安装CentOS 7
  3. RunTime 入门
  4. MATLAB 转PDF图片过大导致两边缺失
  5. XP共享访问无权限解决方法
  6. 面向对象编程(OOP)特性 类和对象
  7. spring aop实现日志收集
  8. 计算机加经济学加自动化,MIT经济学家戳破机器人真相:除了能取代你,价值微乎其微...
  9. [vscode] c++ debugging
  10. centos,apache运维经验
  11. Mac安装svn客户端
  12. 嵌入式、单片机开发必备软件
  13. linux go语言运行环境,linux下怎么安装go语言环境
  14. 人民币金额大写转小写
  15. 常见的五种神经网络(4)-深度信念网络(下)篇之深度信念网络的原理解读、参数学习
  16. [最优化]凸集的定义与常见凸集
  17. 信息安全专业毕业设计选题推荐
  18. 最简单web工程接收消息图片--微信企业号
  19. Spring和Spring Boot区别
  20. 头皮发麻之win10宽带拨号错误797

热门文章

  1. SAP喊出“在中国,为中国”的口号
  2. WPF WrapPanel:自动折行面板
  3. itop4412 LCD设备驱动详解(三)之PROBE
  4. Harbor—镜像仓库
  5. mysql数据库的通配符_数据库MySQL 通配符与模式匹配正则表达式
  6. uniapp 跳转内部链接/外部链接-思路:webview
  7. 上海证券交易所PBU升位历史
  8. 僵尸进程(zombie)以及避免方法
  9. SpringMVC开发常用注解
  10. MYSQL刷题题解_交换每两个连续的学生的座位号