jay*_*t55 1 .net c# gdi+ gdi winforms
如何实现自定义控件的滚动?我的控件是完全自定义绘制的,其高度是可变的,并且控件的一部分包含一个菜单,因此,如果控件中有很多项目,则需要在其中放置滚动条。我真的无法找到有关如何执行此操作的任何线索。我确实看到了有关的信息ScrollableControl,但是我仍然不确定这是否是我需要的。
另外,我的控件如何知道何时需要显示滚动条?因为我的控件是完全自定义绘制的,所以里面没有真正的“控件”,所以只绘制了一堆像素,所以我不能像将AutoScroll设置为true一样,因为它不是控件的主要部分需要滚动,它是控件上需要滚动条的特定位置。
如果您的自定义控件继承自Panel控件,则只需通过以下设置自己在自定义控件中设置内容的大小:
this.AutoScrollMinSize = New Size(yourWidth, yourHeight);
Run Code Online (Sandbox Code Playgroud)
如果控件的ClientSize.Height大于yourHeight,则不会获得任何滚动条。如果更少,则会显示一个滚动条。
在画图方法中,将此添加到开头:
protected override void OnPaint(PaintEventArgs e) {
e.Graphics.TranslateTransform(this.AutoScrollPosition.X,
this.AutoScrollPosition.Y);
Run Code Online (Sandbox Code Playgroud)
现在,您绘制的所有内容都会自动转换为滚动坐标。
| 归档时间: |
|
| 查看次数: |
4349 次 |
| 最近记录: |