深入分析C#中WinForm控件之Dock顺序调整的详解

时间:2022-08-21 18:45:57 

最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起来也是比较方便,如果最大化,窗口大小调整等,都可以随着窗口大小的变化而变化。
但问题是,.net winform的dock方式是根据先添加的控件顺序进行优先级Dock排列的,假设我想目前有三个控件A、B、C分别以 Top、Bottom以及Fill方式填充窗口即窗口看起来应该是这样的:
---------------------
A
---------------------
C
---------------------

----------------------

问题来了,现在我想添加D控件在A及C中间怎么办?尝试了不少办法都不行,一般都会覆盖掉C控件的,也就是最后添加的控件。
在网上查找,很多人都提出一种无奈的解决方案,那就是重新来过,将控件再次添加到窗口form中,虽然可以解决Dock布局带来的困扰,但带来的是工作量的倍增同时很难调整到跟之前的布局一模一样 。
想来这都不是解决的办法,添加添加,我一直想,对了先添加的控件具有Dock的优先排序权,应该可以从Designer文件中着手啊。
找到以下代码:


this.Controls.Add(this.D);
this.Controls.Add(this.C);
this.Controls.Add(this.B);
this.Controls.Add(this.A);


将代码的顺序调整为:


this.Controls.Add(this.C);
this.Controls.Add(this.D);
this.Controls.Add(this.B);
this.Controls.Add(this.A);


问题即解决了。
由此可见,在Desinger文件中是以后添加的控件为优先权高来Dock排序,即A控件的排序优先权最高。

标签:c#,winform,dock
0
投稿

猜你喜欢

  • 你可知HashMap为什么是线程不安全的

    2021-12-10 20:14:59
  • Spring配置文件如何使用${username}

    2021-07-26 22:40:27
  • android自定义波浪加载动画的实现代码

    2021-11-03 12:25:59
  • Java接口幂等性设计原理解析

    2022-12-22 12:27:01
  • Android高仿微信对话列表滑动删除效果

    2022-10-29 21:12:43
  • Java ConcurrentHashMap用法案例详解

    2023-08-30 02:01:41
  • C#实现自定义光标并动态切换

    2021-09-25 09:06:28
  • C#保存listbox中数据到文本文件的方法

    2023-02-20 10:37:27
  • 半小时实现Java手撸网络爬虫框架(附完整源码)

    2022-11-23 15:59:35
  • springboot整合nacos,如何读取nacos配置文件

    2022-12-30 19:55:25
  • C# Cache缓存读取的设置方法

    2022-11-18 05:33:53
  • Java线程间的通信方式详解

    2022-05-20 10:33:47
  • Kotlin this详解及实例

    2022-04-25 22:33:30
  • C# TrieTree介绍及实现方法

    2022-02-10 22:04:53
  • java最新版本连接mysql失败的解决过程

    2022-05-21 17:29:58
  • Java实现JDK动态代理的原理详解

    2021-09-19 08:17:43
  • Java泛型类与泛型方法的定义详解

    2023-11-25 01:29:22
  • java定义二维数组的几种写法(小结)

    2021-07-05 11:52:09
  • android中Activity详解(生命周期、以各种方式启动Activity、状态保存,完全退出等)

    2023-11-28 07:28:04
  • 浅谈三分钟学习Java泛型中T、E、K、V、?的含义

    2022-09-01 20:12:38
  • asp之家 软件编程 m.aspxhome.com