好久都没写程序了,天天搞电路,单片机之类的东西都快疯了。正在我郁闷的时候,我的老大让我编写个监控的软件。
这个监控的软件其实很简单,主要是和单片机通信获取数据,然后进行展示。
比如有1000个箱子,我们要时时观看箱子的数据情况。我们要在一个DataGridView中进行全部监视。串口通信部分我就不说了,因为winform做有自带的SerialPort控件,使用也非常方便。
先给大家上个图
每个小黑色的部分都是图片,这也代表的部分箱子。如果箱子成千上万的话,图片就会非常非常多。当窗体启动的话,箱子数目非常多的时候,拉动滚动条的时候,DataGirdView中的图片闪烁非常厉害。以前只知道Form,panel之类的可以使用双缓存,不知道DataGridView也可以使用双缓冲。当然DataGridView双缓冲的接口是没有对外开放的,只能通过反射获取。
以下是反射获取双缓存代码:
public Form()
{
//设置窗体的双缓冲
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.ResizeRedraw | ControlStyles.AllPaintingInWmPaint, true);
this.UpdateStyles();