c# - 串行端口事件的可视化工具(用于发送和接收的数据)

标签 c# .net winforms serial-port

我的应用程序主动使用串行端口与设备进行交互通信。我需要的是添加某种从串行端口发送和接收数据的可视化工具(两个闪烁的灯类似于系统托盘中网络事件的两台闪烁的计算机)。 我应该遵循什么方法来正确实现此功能?

最佳答案

最简单的方法是创建一个 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;
}

关于c# - 串行端口事件的可视化工具(用于发送和接收的数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8506197/

相关文章:

c# - 为角色扮演游戏中的典型角色设计类层次结构

.net - IKVM.NET 和 Lucene

c# - InvalidProgramException/Common Language Runtime 检测到无效程序

c# - 正确使用迭代 block

c# - 如何解决错误CS1525无效表达词 '='?

c# - 是否可以增加窗口的边框区域以使用鼠标调整窗口大小?

c# - 从 C# 注册到 'GCAllocationTick_V1' CLR 事件

c# - C# 中的 ArgumentOutOfRange 异常

c# - 从表单调用方法

c# - .NET - 是否有翻转时钟控件?