C#基础学习之——(一)Dock与Anchor

C#基础学习之——(一)Dock与Anchor提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Dock与Anchor是什么?1.Dock2.Anchor二、使用步骤1.设计界面2.使用Anchor与Dock总结前言C#基础学习之——(一)Dock与Anchor最近在对窗体控件进行布局时,发现了Dock与Anchor这两种不同的窗体布局属性,所以查阅了一些资料,在这里进行记录。提示:以下是本篇文章正文内容,下面案例可供参考一、Dock与Anchor是什么?1.Dock①Dock在英文中是停泊的意

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

C#基础学习之——(一)Dock与Anchor 最近在对窗体控件进行布局时,发现了Dock与Anchor这两种不同的窗体布局属性,所以查阅了一些资料,在这里进行记录。


提示:以下是本篇文章正文内容,下面案例可供参考

一、Dock与Anchor是什么?

1.Dock

①Dock在英文中是停泊的意思,表示控件的某个边与窗体重合(零距离)。控件的变化则在设计的时候就能呈现。此外控件的DocK循序会影像到结果。 ②Dock有Bottom,Fill,Left,None,Right,Top六种DockStyle类型。其中Bottom意为该控件的下边缘停靠在其包含控件的底部,Fill意为该控件的各个边缘分别停靠在其包含控件的各个边缘,Left意为该控件的左边缘停靠在其包含控件的左边缘,Right意为该控件的右边缘停靠在其包含控件的右边缘,Top意为该控件的上边缘停靠在包含控件的顶端,None意为该控件未停靠。

2.Anchor

①Anchor在英文中是锚定的意思,表示在窗体重置时控件与窗体(或者父控件)的相对位置保持不变。控件变化要等到窗体重置的时候才能呈现。 ②当控件放置于窗体时,默认的anchor设置是“顶部、左边”,这使得控件和窗体的顶边和左边缘固定相关。

二、使用步骤

1.设计界面

我是先自己画了一个用户控件,分别有一个pictureBox,两个listView和一个splitContainer共四个控件,其中两个listView控件和一个splitContainer控件放置在groupBox中

C#基础学习之——(一)Dock与Anchor

2.使用Anchor与Dock

然后新建一个窗体并加载之前画好的用户控件

C#基础学习之——(一)Dock与Anchor
窗体设计尺寸小了,用户控件最右边有一部分没有显示完全,于是我改变窗体尺寸,得到

C#基础学习之——(一)Dock与Anchor
窗体时放大了,可是设计的用户控件并没有随着窗体的放大而进行改变。

这时候就用到了Dock与Anchor属性了,我先将pictureBox与splitContainer两个控件打包在一个panel里面(将pictureBox的Dock属性设置为Top确保其与panel上边缘绑定在一起,将splitContainer的Dock属性设置为Bottom确保其与panel的底部绑定在一起),对于这个panel的Dock属性就不设置了,只默认其Anchor属性为Top,left,这样当加载用户控件时,这个Panel的大小是按用户控件的设计大小进行加载的不会随着窗体的大小的改变而改变。然后我将两个listView的Dock属性设置为Fill,确保他们能随着各自的groupBox的大小进行变化,再将日志栏groupBox的Anchor属性设置为Top,Left,Right,确保日志栏的顶部跟右边能够随窗体的变化而变化(在这里Anchor属性设置包含Left后,应该是按照panel控件的右边缘位置设置自身的左边缘,与设计时的相对位置保持不变),将点位实时数据groupBox的Anchor属性设置为Top,Left,Right,Bottom,确保其底部,左边,右边随主窗体底部位置变化而变化,(由于pannel的Anchor属性默认为Top,Left,则其Bottom和Right是不会随着窗体的变化而变化,故日志栏groupBox的左边缘与点位实时数据groupBox的顶部与这个panel的底部跟右边缘的相对位置不变)。
设计完之后,估计加大主窗体的尺寸,看各控件如何变化:
设计界面:
在这里插入图片描述
窗体显示:
可以看到pictureBox与splitContainer的大小跟设计时的大小一致,而两个groupBox与其包含的listView都随着窗体的变大而变大。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了Anchor与Dock的简单使用,后续会继续探索的!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197421.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 更新日志.txt

    【20210811.1905.3】增加了几处新功能:1.单码登录功能2.账号与用户电脑机械码绑定<url>https://zhuanlan.zhihu.com/p/350520546</url>【20210811.1905.2】优化了几个子程序算法,提高运行速度【20210811.1905.1】1.更新了xxx内容2.修复了几处小bug….

    2022年4月7日
    41
  • 【spring】AOP实践[通俗易懂]

    【spring】AOP实践[通俗易懂]【spring】AOP实践

    2022年4月25日
    41
  • 如何写好单元测试:Mock脱离数据库+不使用@SpringBootTest「建议收藏」

    如何写好单元测试:Mock脱离数据库+不使用@SpringBootTest「建议收藏」目录1、一般的单元测试写法2、单元测试步骤3、对一般的单元测试写法分析优化4、最佳的单元测试写法:Mock脱离数据库+不启动Spring+优化测试速度+不引入项目组件一、普遍的单元测试方法作为一个Java后端程序员,肯定需要写单元测试。我先提供一个典型的错误的单元测试例子:@RunWith(SpringRunner.class)@SpringBootTest(cla…

    2022年5月1日
    94
  • 队列的基本操作(顺序队列、循环队列、链式队列)

    队列的基本操作(顺序队列、循环队列、链式队列)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;队列也是一种线性表,是一种先进先出的线性结构。队列只允许在表的一端进行插入(入队)、删除(出队)操作。允许插入的一端称为队尾,允许删除的一端称为队头。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;队列的基本操作包括:初始化队列:InitQueue(Q)&amp;nbsp;&

    2022年5月9日
    43
  • C++线程同步 CCRITICALSECTION(临界区类)附自己写的测试代码

    C++线程同步 CCRITICALSECTION(临界区类)附自己写的测试代码当多个线程访问一个独占性共享资源时,可以使用“临界区”对象。任一时刻只有一个线程可以拥有临界区对象,拥有临界区的线程可以访问被保护起来的资源或代码段,其他希望进入临界区的线程将被挂起等待,直到拥有临界区的线程放弃临界区时为止,这样就保证了不会在同一时刻出现多个线程访问共享资源。CCriticalSection类的用法如下:定义CCriticalSection类的一个全局对象(以使各个线

    2022年7月20日
    16
  • 远线程注入

    远线程注入OpenProcess函数打开现有的本地进程对象。HANDLEWINAPIOpenProcess(_In_DWORDdwDesiredAccess,_In_BOOLb

    2021年12月13日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号