Scrollable Form in c#, AutoScroll=true doesn't work

后端 未结 3 1510
我在风中等你
我在风中等你 2020-12-19 07:26

What are the rules which I have to respect to make the Form scrollable...

I simple set the Property AutoScroll to true. I also tried while Auto Sc

相关标签:
3条回答
  • 2020-12-19 07:58

    I was also having the same problem, I managed to fix it... All the child controls inside the panel had a Left & Right anchor, and when I only set the anchor to Top, the scrollbars where working fine.

    I am not sure as to why the Left and Right anchor (of the child controls) forces the panel not to show scrollbars.

    But anyways... hope this will help anyone as of this date.

    0 讨论(0)
  • 2020-12-19 08:20

    The content controls the scrolling. The scrollbars do not appear unless they are needed. Usually, there is a property available that you can set to force them to be visible always, and simply disabled until needed.

    The AutoScroll property must be true, as you have already found. But then the content of the scrollable control must force the parent control to display the scrollbars. This part is up to how the controls are embedded within the parent.

    Try these two experiments:

    1. Place a Panel on your form and dock it to Fill. Set the AutoScroll property of the Panel to true. Into that panel, place a TextBox and set it to dock as Fill as well. Also set MultiLine to true. Run the application, and you will notice that the size of both is simply using the available space...no scrolling can occur because neither the Panel, nor its TextBox become larger than the space they occupy.

    2. Perform the same steps as in #1, but this time, do not dock the TextBox. Instead, set it to a large size, something that you know will be larger than the amount of Panel that is visible. Running the application should now produce a scrolling Panel.

    Hopefully this little test helps to demonstrate what is controlling the scroll on a form.

    0 讨论(0)
  • 2020-12-19 08:22

    The AutoScroll property should work fine, but most likely you are not using it right: the bar appears only when required. Example: minimum Y of the Form is 0 and minimum Y of one of the controls in it (a TextBox) is -20.

    If you want to include a scroll bar no matter what (controls inside the boundaries of the form or not), you can also do it. Sample code (from MSDN) for a vertical scroll bar:

    // Create and initialize a VScrollBar.
    VScrollBar vScrollBar1 = new VScrollBar();
    
    // Dock the scroll bar to the right side of the form.
    vScrollBar1.Dock = DockStyle.Right;
    
    // Add the scroll bar to the form.
    Controls.Add(vScrollBar1);
    
    0 讨论(0)
提交回复
热议问题