Files
OMControlCs/OMControl/Form1.cs
2025-12-24 16:41:31 +01:00

47 lines
1.2 KiB
C#

using System.IO.Ports;
namespace OMControl
{
public partial class Form1 : Form
{
private SerialPortWatcher _watcher;
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
}
private void Form1_Load(object sender, EventArgs e)
{
listBoxPorts.Items.Clear();
foreach (var p in SerialPort.GetPortNames())
listBoxPorts.Items.Add(p);
// start watcher
_watcher = new SerialPortWatcher(1000);
_watcher.PortsAdded += ports => BeginInvoke(() =>
{
foreach (var p in ports)
if (!listBoxPorts.Items.Contains(p))
listBoxPorts.Items.Add(p);
});
_watcher.PortsRemoved += ports => BeginInvoke(() =>
{
foreach (var p in ports)
listBoxPorts.Items.Remove(p);
});
_watcher.Start();
}
protected override void OnFormClosing(FormClosingEventArgs e)
{
_watcher?.Dispose();
base.OnFormClosing(e);
}
}
}