我的应用程序主动使用串行端口与设备进行交互通信。我需要的是添加一些从串行端口发送和接收数据的可视化工具(两个闪烁的灯,类似于系统托盘中网络活动的两个闪烁的计算机)。我应该遵循什么方法来正确地实现此功能?
发布于 2013-05-23 14:03:13
最简单的方法是创建一个StatusStrip,并添加一个专门用于这些指标的部分。接下来,挑选出各个状态的图像,并在每次有活动时设置适当的图像。下面是一些粗略的代码。
private System.Drawing.Image StateImageX { get; set; }
private System.Drawing.Image StateImageY { get; set; }
public delegate void DelegateRefreshControls ();
public DelegateRefreshControls RefreshControlHandler;
public Form1 ()
{
this.InitializeComponent();
this.StateImageX = System.Drawing.Image.FromFile(@"??\ImageX.png");
this.StateImageY = System.Drawing.Image.FromFile(@"??\ImageY.png");
this.RefreshControlHandler += new DelegateRefreshControls(this.RefreshControls);
}
private void Form1_FormClosing (object sender, FormClosingEventArgs e)
{
this.RefreshControlHandler -= new DelegateRefreshControls(this.RefreshControls);
}
private void SerialPort_Activity (object sender, FormClosingEventArgs e)
{
this.Invoke(this.RefreshControlHandler);
}
public void RefreshControls ()
{
if (state == x) this.ToolStripStatusLabel.Image = this.StateImageX;
if (state == y) this.ToolStripStatusLabel.Image = this.StateImageY;
}https://stackoverflow.com/questions/8506197
复制相似问题