C# 使picturebox动态滚动
我在这里看到了一些答案,但我没有找到适合我问题的答案 我有一个图片框,我正在它上面动态地画一些矩形(像这样:) 现在,如果我画了很多矩形,那么图片框不够大,我看不到所有的矩形。。。所以我需要使图片框可以滚动 怎么可能呢C# 使picturebox动态滚动,c#,winforms,scroll,graphics,picturebox,C#,Winforms,Scroll,Graphics,Picturebox,我在这里看到了一些答案,但我没有找到适合我问题的答案 我有一个图片框,我正在它上面动态地画一些矩形(像这样:) 现在,如果我画了很多矩形,那么图片框不够大,我看不到所有的矩形。。。所以我需要使图片框可以滚动 怎么可能呢 注意:我没有面板,只有一个通过代码动态填充的图片框。您应该将图片框放置在面板内,并使用AutoScroll=true 然后,您只需根据需要将图片盒放大,甚至可以在创建绘图矩形的地方 public DrawRectangle(Rectangle r, Color c, float
注意:我没有面板,只有一个通过代码动态填充的图片框。您应该将
图片框
放置在面板
内,并使用AutoScroll=true
然后,您只需根据需要将图片盒
放大,甚至可以在创建绘图矩形
的地方
public DrawRectangle(Rectangle r, Color c, float w, Control ct)
{
color = c;
width = w;
rect = r;
surface = ct;
if ((r.Right > surface.Width) || (r.Bottom > surface.Height))
{
surface.Size = new Size(Math.Max(surface.Width, r.Right),
Math.Max(surface.Height, r.Bottom)) ;
}
}
为什么
PictureBox
?您可以在任何控件中绘制。这里您需要一个ScrollableControl
派生类。@IvanStoev,因为当鼠标悬停在pcture框上时,我也在遍历所有矩形,并重新绘制矩形(您可以在我编写的url中看到),如果我不使用图片框,当鼠标悬停在控件上时,我会遇到类似filckr的错误。PictureBox
是为了简化显示图像。同样,您可以在任何控件中使用或不使用闪烁进行绘制。不正确。他必须对每个控件进行子类化,以包含双缓冲。当然,这没什么大不了的。但是在自动扫描面板中嵌套一个PBox就可以了。必要时,他所需要做的就是放大PBox。。另外:自动滚动仅用于显示嵌套控件,而不用于显示您绘制的图形,因此嵌套是必要的。@TaW这听起来更像VB6 ish解决方案,但当然是一个选项:)非常感谢!再一次,你为我节省了很多时间!很高兴听到它对你也有用。进展如何另外:如果有帮助的话,别忘了接受答案……不管我们在评论中有什么“学术”讨论,这绝对值得投票支持:)