【发布时间】:2018-11-22 11:26:54
【问题描述】:
我在这里看到了一些答案,但没有找到适合我的问题的答案。
我有一个图片框,我在上面动态地绘制了一些矩形(例如:Change color of graphic rectangle dynamically)。
现在,如果我画了很多矩形,那么图片框不够大,我看不到所有矩形......所以我需要让图片框可滚动。
这怎么可能?
注意:我没有 Panel,只有一个 PictureBox,我通过代码动态填充。
【问题讨论】:
-
为什么是
PictureBox?您可以在任何Control中绘制。这里你需要一个ScrollableControl派生类。 -
@IvanStoev 因为当鼠标悬停在图片框上并重绘矩形时,我也在遍历所有矩形(你可以在我写的网址中看到),如果我不使用图片框当鼠标悬停在控件上时,我会得到一个类似 filckr 的错误。
-
PictureBox是为了简化显示图像。同样,您可以在 anyControl. 中使用或不闪烁进行绘制 -
不正确。他将不得不对每个控件进行子类化以包括双缓冲。当然,这没什么大不了的。但是在自动滚动面板中嵌套一个 PBox 就可以了。他需要做的就是在必要时放大 th PBox.. 另外:Autscrolling 仅用于显示嵌套控件,而不用于显示您绘制的图形,因此嵌套是必要的。
-
@TaW 这听起来更像是 VB6 的解决方案,但当然是一种选择 :)
标签: c# winforms scroll graphics picturebox