views:

16

answers:

1

Is there a way to hide "System.Windows.Forms.ListBox()" border?

thanx!

+3  A: 

if any1 is interested ... this seems to work. Another thumb.down for the compact framework.

public Form1()
    {
        InitializeComponent();

        ShowBorder(listView1.Handle, false);
    }

    private void ShowBorder(IntPtr handle, bool bShow)
    {
        int style = GetWindowLong(handle, GWL_STYLE);
        if (bShow)
        {
            style |= WS_BORDER;
        }
        else
        {
            style &= ~WS_BORDER;
        }
        SetWindowLong(handle, GWL_STYLE, style);
        SetWindowPos(handle, IntPtr.Zero, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED);
    }

    const int GWL_STYLE = -16;
    const int WS_BORDER = 0x00800000;
    const int SWP_NOSIZE = 0x1;
    const int SWP_NOMOVE = 0x2;
    const int SWP_FRAMECHANGED = 0x20;

    [DllImport("coredll.dll")]
    private static extern int GetWindowLong(IntPtr hWnd, int nIndex);

    [DllImport("coredll.dll")]
    private extern static void SetWindowLong(IntPtr hwnd, int nIndex, int dwNewLong);

    [DllImport("coredll.dll")]
    private static extern bool SetWindowPos(IntPtr hwnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, int uflags);
no9

related questions