【发布时间】:2023-02-25 17:09:21
【问题描述】:
我制作了一个 c# windows 窗体应用程序,它通过 rs-232 串行从体重秤接收重量 沟通。所以基本上,当我按下按钮 1 时,我应该将重量放入标签 1 中。 除了当我第二次按下按钮 1 时发生异常错误。它说该端口已打开或已被使用。我该怎么办?
using System.IO.Ports;
namespace loaded
{
public partial class Form1 : Form
{
SerialPort rs;
string Data;
private delegate void setlbtext(string text, Label lb);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
rs= new SerialPort();
rs.BaudRate = 9600;
rs.Parity = Parity.None;
rs.DataBits = 8;
rs.PortName = "COM7";
rs.DataReceived += new SerialDataReceivedEventHandler(Rsrecivedata);
}
private void Rsrecivedata (object sender, SerialDataReceivedEventArgs eventArgs)
{
Data = rs.ReadLine();
updatalabel(Data, label1);
}
private void updatalabel (string value, Label lb)
{
if (lb.InvokeRequired)
{
lb.Invoke(new setlbtext(updatalabel), value, lb);
}
else
{
lb.Text = value;
}
}
private void button1_Click(object sender, EventArgs e)
{
rs.Open();
}
}
}
【问题讨论】:
-
按下进入当
Button获得焦点时,键将单击它。这表明您点击了Button两次,因此您尝试打开SerialPort两次,因此您当然会收到该消息。你为什么要按进入首先?也许你应该禁用Button直到你关闭SerialPort,这样你就不能点击它超过一次。 -
我的意思是当我点击按钮时不按回车键
-
您可能应该编辑您的问题并提供真实的信息,因为就问题误导我们并不是获得帮助的好方法。
-
它是在您第一次单击
Button时发生还是直到第二次才发生? -
第二次,第一次没有任何反应。它不会从体重秤上读取重量
标签: c#