我了解与表单/控件有关的“客户矩形”的概念,
但我不明白两者之间有什么区别Control.ClientRectangleControl.DisplayRectangle ..

在阅读了这两个属性的MSDN页面后,不清楚其中一个何时返回另一个值。
.ClientRectangle的MSDN页面显示:



很清楚

但是.DisplayRectangle的MSDN页面显示:



现在还不清楚。
在继承控件中,我想在哪里使.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是控件的内部 Canvas ,因此当您具有滚动控件时,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);
}

c# - Control.ClientRectangle与Control.DisplayRectangle-LMLPHP

09-07 00:22