gpt4 book ai didi

C# Winforms 使用 Drawline 方法更新屏幕超慢

转载 作者:太空宇宙 更新时间:2023-11-03 22:08:04 25 4
gpt4 key购买 nike

我已经在网上浏览了这方面的内容,但没有找到我正在寻找的确切答案,或者我已经尝试了建议的内容,但它不起作用!

我遇到的问题是我有一个屏幕,它在一个矩阵中有大约 72 个复选框,我使用我存储在列表中的坐标的线连接在一起。

为了绘制线条,我在 OnPaint 的重写方法中使用 Drawline 方法来循环访问列表,如下所示:-

protected override void OnPaint(PaintEventArgs e)
{
Pen myPen = new Pen(System.Drawing.Color.Black);
Graphics g = this.CreateGraphics();
myPen.Width = 5;

foreach(ConnectionLine cl in connectionLines)
{
g.DrawLine(myPen, cl.xStart, cl.yStart, cl.xStop, cl.yStop);
}

myPen.Dispose();
g.Dispose();

}

奇怪的是,它似乎不是花时间绘制的线条 - 现在是复选框,如果我删除线条功能,这些会在眨眼间刷新。

非常感谢任何想法。

谢谢,

戴夫

最佳答案

部分问题可能是每次绘制控件时都在重新创建 Graphics 对象。相反,您应该使用 PaintEventArgs 中提供的 e.Graphics 对象。您也可以尝试只使用一个 Pen 实例。

 private readonly Pen _myPen = new Pen(System.Drawing.Color.Black) {Width = 5};
protected override void OnPaint(PaintEventArgs e)
{
foreach (var cl in connectionLines)
e.Graphics.DrawLine(_myPen, cl.xStart, cl.yStart, cl.xStop, cl.yStop);
}

关于C# Winforms 使用 Drawline 方法更新屏幕超慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7688238/

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