【问题标题】:DisplayRectangle for a Panel is too small and matches the ClientRectanglePanel 的 DisplayRectangle 太小并且与 ClientRectangle 匹配
【发布时间】:2016-06-22 21:20:48
【问题描述】:

我有一个具有水平滚动条的 C# 面板,因此 DisplayRectangle 的宽度应该大于 ClientRectangle,但 DisplayRectangle 等于 ClientRectangle。如何使面板返回正确的 DisplayRectangle 大小?我正在使用它来自动滚动面板并截取面板的全部内容。

Rectangle dispRect = panel.DisplayRectangle;
Rectangle cRect = panel.ClientRectangle;

不幸的是 dispRect == cRect。

【问题讨论】:

  • 您使用的是哪个 GUI 框架?你需要知道的究竟是什么?显示给用户的窗口大小?
  • 这个问题有些可疑。如果 DisplayRectangle 等于 ClientRectangle 则面板应该显示滚动条。滚动条仅在 DisplayRectangle > ClientRectangle 时可见。水晶球说您实际上在面板上放置了一个 HScrollBar。好吧,不要那样做。
  • 我正在使用 WinForms。另一件奇怪的是,HScroll 是假的,Horizo​​ntalScroll.Visible==false。当我查看表单时,有一个水平滚动条。此外,面板将 AutoScroll 设置为 true。我尝试调用 Invalidate() 来尝试为 DisplayRectangle 获取正确的大小,但大小没有改变。我没有像汉斯所说的那样在面板上放置一个 HScrollBar 可能是真的。我正在尝试获取面板的完整尺寸,但目前,它只返回可见的尺寸。有没有办法强制面板重新计算 DisplayRectangle?

标签: c# scroll panel


【解决方案1】:

没有问题,从基类返回了错误的面板,我需要的是被覆盖的面板。

【讨论】:

    猜你喜欢
    • 2020-04-09
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多