есть ли способ определить, является ли панель вертикальной полосы прокрутки сетки видимой или скрытой. или свойство, которое возвращает значение, если оно скрыто или видимо? В настоящее время я использую dev express grid control, кто-нибудь может дать ответ? Я искал пару часов, но я не могу найти ответ.
это для более старых версий gridview DevExpress. Я также получил нулевое значение, используя стандартное отражение.
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;
}
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
Grid Control не предоставляет такого свойства. Почему вы не используете XtraScrollableControl?