通常我们在设置子控件的一些与外观、布局有关的属性时,比如Size、Location、Anchor   或   Dock等,会激发子控件的Layout事件,并可能会引起窗口重绘,当子控件较多时,如果频繁设置上述属性(例如在窗体的初始化代码中),多个子控件的Layout事件会引起窗口重绘效率问题,比如闪烁。使用SuspendLayout(),其后的代码中将会把子控件的Layout事件暂时挂起,只是把相应属性的值设置为新值,并不激发Layout事件,待调用ResumeLayout()后,再一起使子控件的Layout事件生效。

如:

private void AddButtons()
{
   // Suspend the form layout and add two buttons.
   this.SuspendLayout();//控件的布局逻辑被挂起,直到调用 ResumeLayout 方法为止。
   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();
}

大量添加控件时会提高效率。

===================================

show()是非模式窗体
ShowDialog()是模式窗体,就时不能随便切换的那种,只有当打开的窗体关闭时才能操作父窗体。

SuspendLayout 和 ResumeLayout 方法相关推荐

  1. [c#.net]SuspendLayout 和 ResumeLayout

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

  2. 使用SuspendLayout和ResumeLayout

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

  3. SuspendLayout 和 ResumeLayout

    在Designer中会看到这两个方法,究竟是做什么用的呢? 一般在加载所有控件之前SuspendLayout方法,挂起所有控件在界面的逻辑布局事件,等又有布局代码完后再调用 ResumeLayout事 ...

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

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

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

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

  6. SuspendLayout 和 ResumeLayout挂起布局

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

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

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

  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. 加强版dd工具dc3dd
  2. 全面覆盖CV任务!这个国产“书生”只学10%内容,性能就超越同行
  3. 2021算法竞赛入门班第七节课【图论】练习题
  4. 二十五、深入Python中的协程
  5. 计算机四级软件工程知识点,计算机四级考点
  6. MapReduce框架中map、reduce方法的运行机制
  7. CSS之expression
  8. cocos2d-x游戏开发系列教程-中国象棋02-main函数和欢迎页面
  9. android 8 wifi 不稳定,Android 8.0又背锅?网络兼容问题导致WiFi狂掉线
  10. node-red mysql的增删改查_通过curl或者http请求对elasticsearch中的数据进行增删改查...
  11. double取两位小数_Java语言中:float、double数据类型在内存中是如何存储的
  12. 大数据开发笔记(六):Flume基础学习
  13. 图像下采样 matlab_MATLAB--数字图像处理 图像的采样与量化
  14. Procdump+Mimikatz获取Windows明文密码
  15. 谢霆锋断言暂不再婚 赞张柏芝教子有方
  16. 注解@NotEmpty、@NotBlank、@NotNull三者的区别及使用范围
  17. 【中创福利】有一种年味叫公司发年货
  18. shell 脚本学习
  19. 【MySQL】MySQL之权限管理
  20. android 记录触屏坐标,android触摸屏坐标手工校准/调整成功

热门文章

  1. js判断电脑是windows系统还是mac系统
  2. wim linux u盘启动项,WinPE迷你系统中通过WimFltr组件挂载WIM镜像方法
  3. swagger2 @ApiResponse的response不起作用
  4. OpenCV图像处理--将图像裁剪为圆形
  5. 淘宝开女装店前期需要准备什么?开淘宝服装店要注意什么?
  6. java1000以内的阶乘_[无聊]做一下1000的阶乘
  7. 移动端App与后台服务的对接方案
  8. python自动下载论文_python自动下载高品质无损歌曲
  9. 计算机来源与发展历程
  10. 计算机软硬件基本知识总结,计算机软硬件基础知识都有什么具体的内容?