当前位置:  开发笔记 > 编程语言 > 正文

Control.ClientRectangle与Control.DisplayRectangle

如何解决《Control.ClientRectangle与Control.DisplayRectangle》经验,为你挑选了1个好方法。

我理解客户矩形的关于窗体/控件的概念,
但我不明白有什么区别之间
Control.ClientRectangleControl.DisplayRectangle..

在读取这两个属性的MSDN页面之后,不清楚其中一个属性是否会从另一个属性返回不同的值.

MSDN页面上.ClientRectangle写着:

控件的客户区域是控件的边界,减去非客户端元素,例如:标题栏,边框,滚动条和菜单.

这很清楚.

然而,MSDN页面上.DisplayRectangle写着:

对于基本控件类,这等于客户端矩形.
但是,如果客户端区域与其显示区域不同,则继承控件可能需要更改此设置.

现在还不是那么清楚..在继承控制中,我想让.DisplayRectangle价值与那个不同.ClientRectangle

Control.ClientRectangle:https :
//msdn.microsoft.com/en-us/library/system.windows.forms.control.clientrectangle.aspx

Control.DisplayRectangle:https :
//msdn.microsoft.com/en-us/library/system.windows.forms.control.displayrectangle.aspx



1> LarsTech..:

DisplayRectangle是控件的内部画布,因此当您有一个滚动控件时,DisplayRectangle将大于ClientRectangle,它只是您在屏幕上看到的区域:

panel1.AutoScrollMinSize = new Size(0, panel1.Height * 2);
panel1.Paint += panel1_Paint;

void panel1_Paint(object sender, PaintEventArgs e) {
  e.Graphics.FillEllipse(Brushes.Red, panel1.DisplayRectangle);
  e.Graphics.DrawEllipse(Pens.Green, panel1.ClientRectangle);
}

在此输入图像描述


非常感谢Lars.代码片段和结果截图非常有用.
推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有