我在这个网站和其他网站上看到了很多这样的问题,但我还没有找到答案。我想要做的是在单击时绘制一系列大小约为 10x10 的矩形。所以我有一个按钮,当我点击它时,它会在我的面板内创建一个矩形
xgraphics = pnlContainer.CreateGraphics();
xgraphics.FillRectangle(new SolidBrush(Color.Red), xAxis, yAxis, 10, 10);
pnlContainer.AutoScrollPosition = new Point(Convert.ToInt32(xAxis),Convert.ToInt32(yAxis));
yAxis += 10;
它创建矩形然后向下移动,在下一次单击时它会创建另一个矩形,但现在它更低,依此类推。我正在使用我在此处阅读的关于如何通过将面板放入带有 autoscoll 的面板内并在到达底部时提高内部面板的高度来滚动面板的技巧。但是效果很好!!!!当面板滚动条出现时,它会清除我所有的图形。
我读到我反对使用 invalidate(); 但是当我这样做时,它会抛出一个错误,即图形无法转换为矩形。所以什么F???
我在 MSDN 上看到我可以这样做:
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
// Draw the rectangle...
e.Graphics.DrawRectangle(new Pen(Color.Blue, PenWidth), RcDraw);
}
但是,这会使用鼠标创建一个矩形,这在我的情况下不起作用。简而言之,我需要能够在面板中创建一个矩形,当它到达底部时,它将允许您滚动并向其添加更多矩形......听起来并不难,但我缺少一些基本的东西,它真的开始磨我的齿轮了!请帮忙!