none
如何屏蔽MDI主窗体的scollbar RRS feed

  • 问题

  • 在MDI主窗体中。如果,子窗体大小超过主窗体,或移动子窗体超过主窗体边界时

    MDI主窗体自动出现scrollBar.

    如何能屏蔽掉这个scrollBar,令子窗体大小超过主窗体,或移动子窗体超过主窗体边界时,主窗体的scrollBar都不出现

    设置了主窗体的autoScroll=false; //不起作用

    2011年7月25日 9:12

答案

  • 使用API来实现,
    private const int SB_BOTH = 3;
     
    private const int WM_NCCALCSIZE = 0x83;
     
    [System.Runtime.InteropServices.DllImport("user32.dll")]
     
    private static extern int ShowScrollBar(IntPtr hWnd, int wBar, int bShow);
     
    protected override void WndProc(ref Message m)
    {
     
    if (mdiClient != null)
    {
     
    ShowScrollBar(mdiClient.Handle, SB_BOTH, 0);
    }
     
    base.WndProc(ref m);
    }
     
    MdiClient mdiClient = null;
     
    private void FormMain_Load(object sender, EventArgs e)
    {
    foreach (Control c in this.Controls)
    {
    if (c is MdiClient)
    {
    mdiClient = c as MdiClient;
    }
    }
    }
    


    http://blog.csdn.net/zx13525079024
    • 已标记为答案 Paul Zhou 2011年8月4日 3:36
    2011年7月27日 2:38