Winforms WinForm面板在没有滚动条的情况下滚动?

Winforms WinForm面板在没有滚动条的情况下滚动?,winforms,scrollbar,Winforms,Scrollbar,我正在创建一个用户控件,它基本上是一个面板(里面有随机内容),我需要能够使用按钮(向上和向下)而不是滚动条来上下滚动这个面板 我必须这样做的原因是,这个程序将在触摸屏上使用,我们需要大按钮,而不是丑陋的小滚动条 我一直在摆弄VerticalScrollbar属性,但它们似乎什么都没做。我注意到,如果我将AutoScroll设置为false,AutoScrollPosition实际上会显示坐标,除了应该是负数之外。另外,我注意到panel.VerticalScrollbar.Visible=tru

我正在创建一个用户控件,它基本上是一个面板(里面有随机内容),我需要能够使用按钮(向上和向下)而不是滚动条来上下滚动这个面板

我必须这样做的原因是,这个程序将在触摸屏上使用,我们需要大按钮,而不是丑陋的小滚动条

我一直在摆弄VerticalScrollbar属性,但它们似乎什么都没做。我注意到,如果我将AutoScroll设置为false,AutoScrollPosition实际上会显示坐标,除了应该是负数之外。另外,我注意到panel.VerticalScrollbar.Visible=true;只有当放置在构造器之外时,它似乎才起作用。这有什么原因吗

基本上,WinForms的滚动条对我来说非常混乱(buggy?)。有没有人知道一个好方法,可以通过编程方式通过按钮上下滚动面板(我不在乎是否需要一个不可见的滚动条)


谢谢大家!=D

将您的UserControl设置为常规UserControl(即继承自UserControl而不是Panel),并在UserControl上放置一个面板。在内部面板上放置任何内容/控件,然后更改面板的“左”和“上”属性,使其在没有滚动条的情况下移动。您还可以向UserControl添加按钮来处理内部面板的移动

然而,一个更简单的方法可能是只使用真正宽/高的滚动条,并将它们的Thumbwidth(我认为这是属性)设置为相同的大值-这将生成易于使用手指的滚动条。据我所知,当Autoscroll设置为True时,面板上显示的滚动条无法实现这一点,因此您仍然需要使用我上面提到的方法(用户控件上有一个内部面板),并添加滚动条以自行移动它


我同意Windows中的滚动条很糟糕,所以虽然我通常只支持使用每个人都习惯使用的标准控件,但在这种情况下,我不认为滚动自己的控件有什么错

嘿,谢谢你的回答!我认为移动面板的位置是最简单的方法。然而,我想避免这样做,因为面板的大小取决于里面的东西,现在我必须做更多的工作来计算面板的大小。然而,这似乎是我将要走的道路。再次感谢!