我了解有关表单/控件的客户端矩形的概念,
但我不明白之间有什么区别
Control.ClientRectangle
and Control.DisplayRectangle
..
在阅读了这两个属性的 MSDN 页面后,并不清楚其中一个何时会返回与另一个不同的值。
MSDN 页面.ClientRectangle
says:
控件的客户区是控件的边界减去
非客户端元素,例如:标题栏、边框、滚动条和菜单。
这很清楚。
然而 MSDN 页面.DisplayRectangle
says:
对于基本控制类,这是等于客户矩形.
然而,继承控件可能想要改变这一点,如果他们的客户端
区域与其显示区域不同。
现在还不太清楚..
在继承控件中,我想在哪里使.DisplayRectangle
值不同于.ClientRectangle
one?
Control.Client矩形:
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.clientrectangle.aspx https://msdn.microsoft.com/en-us/library/system.windows.forms.control.clientrectangle.aspx
控制.显示矩形:
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.displayrectangle.aspx 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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)