如何实现自定义控件的滚动?我的控件是完全自定义绘制的,它的高度是可变的,并且控件的一部分包含一个菜单,所以如果控件中有许多项,我需要能够将滚动条放在那里。我真的找不到任何关于如何做到这一点的线索。我确实看到了一些关于ScrollableControl的东西,但我仍然不确定这是否是我需要的。
另外,我的控件如何知道什么时候需要显示滚动条?因为我的控件是完全自定义绘制的,所以没有真正的“控件”,它只是绘制在它上面的一堆像素,所以我不能简单地将AutoScroll设置为true,因为它不是需要滚动的控件的主要部分,而是控件上需要滚动条的特定位置。
发布于 2017-09-12 00:06:30
我已经通过创建一个自定义控件部分解决了这个问题,该控件继承自控件,并且完全在OnPaint中绘制。到目前为止,我的解决方案是使用ScrollBarRenderer绘制滚动按钮,然后为可滚动区域定义一个矩形。然后,我创建了一个用于绘制可滚动内容的图像,并在使用DrawImage绘制到我创建的可滚动内容矩形之前,使用TranslateTransform将该图像滚动到适当的位置。它显示了它的前景,尽管我还没有让它完全工作,因为我必须自己处理所有的MouseOver和Click事件。
https://stackoverflow.com/questions/26322209
复制相似问题