如何检测滚动条何时出现?C#

3
有没有一种方法或事件可以解决这个问题?具体来说,这是针对流式布局面板的。

答案可能取决于你所说的是什么控件(一个窗体、一个面板等等)。 - MusiGenesis
2个回答

7
如果您正在使用FlowLayoutPanel,可以检查面板中最后一个控件的Bottom属性是否大于面板的高度。
或者,尝试检查VerticalScroll.Visible(我没有尝试过,但它应该能实现您想要的功能)。

1
是的,VerticalScroll.Visible属性表示是否显示滚动条。谢谢。 - MahdiS

1
当滚动条出现时,将触发"Resize"事件。由于我需要进行大量自定义节点绘制,因此需要知道此事件的发生。所以我会执行以下操作...
  private bool vScrollVisible = false;      

  /// <summary>
  /// 
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void TreeViewClean_Resize(object sender, EventArgs e)
  {
     if(VScrollVisible())
     {
        if (!vScrollVisible)
        {
           vScrollVisible = true;
           Refresh();
        }
     }
     else
     {
        if(vScrollVisible)
        {
           vScrollVisible = false;
           Refresh();
        }
     }
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接