Проверьте видимость полосы прокрутки - PullRequest
3 голосов
/ 31 декабря 2010

Есть ли способ проверить, видна ли вертикальная полоса прокрутки на определенном объекте ListView?

Я получил Windows Forms с listView на нем, на событии resize, которое я хотел бы перехватить, еслиУ listview есть вертикальная полоса прокрутки!

1 Ответ

3 голосов
/ 31 декабря 2010

Если это WPF, здесь существует образец , который в основе решения привязывается к ListView.LayoutUpdated.

Если это WinForms, вы можете использовать pinvoke и GetWindowLong ...

  static public class WndInfo
  {
    [DllImport("user32.dll", SetLastError = true)]
    static extern int GetWindowLong(IntPtr hWnd, int nIndex);

    ...
    public static bool IsWindowTopMost(IntPtr Handle)
    {
      return (GetWindowLong(Handle, GWL_EXSTYLE) & WS_EX_TOPMOST) != 0;
    }
    ...
  }

Код VB существует с использованием GetWindowLong для проверки существования ScrollBar, который вы можете перенести на C #.

...