c#识别控件上的滚动条

时间:2010-11-17 14:32:55

标签: c# winforms

如何检查Winforms中的数据网格视图中是否存在滚动条。

像(伪代码)

之类的东西
If(datagridview.verticalscrollbar = true)
 do something......

感谢。

2 个答案:

答案 0 :(得分:4)

没有专门用于此目的的属性或方法,但您可以通过执行以下检查来判断是否显示垂直滚动条:

bool scrolling = (dataGridView.DisplayedRowCount(false) != dataGridView.Rows.Count);

(它将总行数与当前显示的数字进行比较;如果它们不匹配,则会显示滚动条。)

答案 1 :(得分:1)

在Datagridview中,滚动条有特殊控件 - 与普通面板不同。

你可以做某事。像

private VScrollBar _verticalScrollBar;
private HScrollBar _horizontalScrollBar;

foreach (Control c in _dataGridView.Controls)
    {
        if (c is VScrollBar)
        {
             _verticalScrollBar = c as VScrollBar;
             if (_horizontalScrollBar!=null)
             {
                 break;
             }
        }
        if (c is HScrollBar)
        {
             _horizontalScrollBar = c as HScrollBar;
             if (_verticalScrollBar != null)
             {
                break;
             }
        }
    }

并使用

测试滚动条是否可见
if(_verticalScrollBar.Visible==true){
//do something you want when scrollbar is visible
}
else
{
//do something when scrollbar is invisible
}