我有一个控件,其父控件是ScrollableControl
。我如何找到实际对用户可见的控件部分?两者都是矩形的 - 没有任何区域上的问题。
我认为下面所写的GetVisibleRectangle方法是你所请求的。 连续滚动运行此方法时,由于控件被滚动而产生了以下输出:
Rectangle.Empty
。请注意,除了宽度和高度的更改外,X,Y值也会随滚动而更改。
来源:
private void button1_Click(object sender, EventArgs e)
{
Rectangle r = GetVisibleRectangle(this.panel1, button4);
System.Diagnostics.Trace.WriteLine(r.ToString());
}
public static Rectangle GetVisibleRectangle(ScrollableControl sc, Control child)
{
Rectangle work = child.Bounds;
work.Intersect(sc.ClientRectangle);
return work;
}
child.Bounds.IntersectsWith(sc.ClientRectangle)
。 - Cipi