我有以下类,我用它来存储SQLite读取器数据以绘制到paintevent中以在Invalidate()调用时在winform上绘制。该类已创建如下:
public class Reader
{
static public SQLiteDataReader nodes;
static public SQLiteDataReader conduits;
static public SQLiteDataReader catchments;
}
例如,该类的变量分配如下:
//click event when a conduit is created
SQLiteDataReader reader = SqlConnections.FindNode(x, y); //this grabs data from my database
Reader.conduits = reader;
我遇到的问题是当Invalidate()被调用时,没有重新分配 Reader 类变量的数据,它的变量被清空,即使它们最近被填充并显示在屏幕上。起初,我以为我遇到了常见的“绘制事件对象消失”,但是当这不应该发生在静态变量上时,我的类变量肯定会继续处理。
这有什么共同的原因吗?
我知道每次Invalidate()调用时我都可以从数据库中重新分配类变量,但是我对数据做了很多后处理,这看起来非常昂贵,我想避免它。
POPMUISE
相关分类