我理解客户矩形的关于窗体/控件的概念,
但我不明白有什么区别之间
Control.ClientRectangle
和Control.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
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); }