gpt4 book ai didi

c# - 在面板上绘画允许自动滚动

转载 作者:行者123 更新时间:2023-11-30 14:04:14 26 4
gpt4 key购买 nike

我正在实现一个想要在面板中画线的应用程序。但是面板必须自动滚动,因为它的大小可以在运行时扩展。我使用的面板绘制方法如下。当我运行程序时它会绘制线条,但是当我向下滚动面板时线条会崩溃。我该如何避免这种情况?

private void panel1_Paint(object sender, PaintEventArgs e)
{
this.DoubleBuffered = true;
Pen P = new Pen(Color.Red);

for (int i = 0; i < 10; i++) {
e.Graphics.DrawLine(P, (new Point(i * 40, 0)), (new Point(i * 40, 60 * 40)));
}
for (int i = 0; i < 60; i++)
{
e.Graphics.DrawLine(P, (new Point(0, i *40)), (new Point(10 * 40, i * 40)));
}
}

最佳答案

我假设“崩溃”实际上并不意味着您的代码崩溃了。您需要将绘图偏移滚动量。这很容易做到:

private void panel1_Paint(object sender, PaintEventArgs e) {
e.Graphics.TranslateTransform(panel1.AutoScrollPosition.X, panel1.AutoScrollPosition.Y);
// etc
//...
}

关于c# - 在面板上绘画允许自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2406720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com