【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《C#条形码》,欢迎阅读!
public class RevSerialPort
{
SerialPort serialPort;
StringBuilder sb;
public RevSerialPort()
{
sb = new StringBuilder();
serialPort = new SerialPort();
serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
}
public RevSerialPort(string portName)
{
sb = new StringBuilder();
serialPort = new SerialPort(portName);
serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
}
public RevSerialPort(string portName, int baudRate, Parity parity, int dataBits, StopBits stopBits)
{
sb = new StringBuilder();
serialPort = new SerialPort(portName, baudRate, parity, dataBits, stopBits);
serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
}
void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
sb.Append(serialPort.ReadExisting());
int index = sb.ToString().IndexOf((char)0xd);
if (index > 0)
{
try
{
System.Windows.Forms.SendKeys.SendWait(sb.ToString(0, index) + "~");
}
finally
{
sb.Remove(0, index + 1);
}
}
}
public void Start()
{
serialPort.Open();
}
public void Stop()
{
if (serialPort.IsOpen)
serialPort.Close();
}
}
使用时,在主窗体加载事件中直接开启,主窗体关闭时关闭:
RevSerialPort rsp;
private void MainForm_Load(object sender, EventArgs e)
{
try
{
//如果不是默认的COM1端口,这里需要传入端口号
rsp = new RevSerialPort();
rsp.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (rsp != null)
rsp.Stop();
}
微信扫码分享