【问题标题】:How to Detect if Grid Control vertical scroll bar is visible or Hidden. Dev express如何检测网格控件垂直滚动条是可见还是隐藏。开发快递
【发布时间】:2014-05-28 07:02:46
【问题描述】:

有没有办法检测网格控件垂直滚动条是可见还是隐藏。或者如果隐藏或可见则返回值的属性?我目前正在使用 dev express 网格控件,任何人都可以提供答案吗?我一直在寻找几个小时,但我找不到答案。

【问题讨论】:

    标签: c# wpf devexpress devexpress-wpf


    【解决方案1】:

    这适用于旧版本的 DevExpress 网格视图。我也使用标准反射得到了 null。

    private GridViewInfo GetViewInfo(GridView view)
        {
            FieldInfo fi;
    
            fi = typeof(GridView).GetField("fViewInfo", BindingFlags.NonPublic | BindingFlags.Instance);
    
            GridViewInfo griInfo = fi.GetValue(view) as GridViewInfo;
            if (griInfo != null)
             {
              // check if scrollbar
              if (griInfo.VScrollBarPresence == ScrollBarPresence.Visible)
              {
                  Console.WriteLine("Scrollbar visible");
              }
              else
              {
                  Console.WriteLine("Scrollbar not visible");
              }
            }
            return griInfo;
        }
    

    【讨论】:

    • 不适用于 DevExpress 13.1.7.0。 GridView 不包含 fViewInfo
    【解决方案2】:

    网格控件不提供此类属性。为什么不使用 XtraScrollableControl?

    【讨论】:

    • 我只是想知道网格控件是否有太多数据..以及它显示的垂直滚动条你能提供一个例子吗?
    • 当您定义网格控件的高度,并且数据大于该高度时,会出现滚动条。你可以像这样检查它。例如: 100 是高度,它包含 11 行 10 高度,然后将启用滚动条。但如果它包含 10 行,则不会。但是 Grid Control 没有提供这样的方法或属性来直接获取它。
    【解决方案3】:
        private void button1_Click(object sender, EventArgs e)
        {
            // create a long list to force scrollbar
            List<String> tempList = new List<string> { "1 value", "1 value", "1 value", "1 value", "1 value", "1 value", "1 value", "1 value", "1 value", "1 value", "1 value", "1 value", "1 value" };
            gridControl1.DataSource = tempList;
    
            // check if scrollbar is visible
            GridViewInfo viewInfo = gridView1.GetViewInfo() as GridViewInfo;
            if (viewInfo != null)
            {
                // check if scrollbar
                if (viewInfo.VScrollBarPresence == ScrollBarPresence.Visible)
                {
                    Console.WriteLine("Scrollbar visible");
                }
                else
                {
                    Console.WriteLine("Scrollbar not visible");
                }
            }
        }
    

    来源:DevExpress

    【讨论】:

    • 我已经尝试过使用网格控件的表格视图,但它似乎没有 GetViewInfo() 方法
    • 你使用的是什么版本的 devexpress?
    • 我目前使用的是 13.2
    • 你没有使用gridview吗?
    猜你喜欢
    • 2010-10-02
    • 2012-10-21
    • 1970-01-01
    • 2013-10-26
    • 2014-02-05
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多