我有一个应用程序,其中有三种形式之一的登录,成功登录后,用户将被发送到选择comport和设置波特率的串行端口后,他们将被发送到主应用程序与串行端口,这是在以前的形式配置.
我不知道我该怎么把那个串口连接到另一个。我对C#还很陌生
这是我的ComPort.cs
private void ComPort_Load(object sender, EventArgs e)
{
string[] ports = SerialPort.GetPortNames();
comPort_comboBox.Items.AddRange(ports);
}
private void btn_open_port_Click(object sender, EventArgs e)
{
try
{
serialPort1.PortName = comPort_comboBox.Text;
string comportlabel= comPort_comboBox.Text;
serialPort1.BaudRate = Convert.ToInt32(baud_rate_combobox.Text);
string baudlabel = baud_rate_combobox.Text;
serialPort1.Open();
Home home = new Home();
home.ShowDialog();
}
catch (Exception err)
{
MessageBox.Show(err.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
serialPort1.Read(Data_rx, 0, serialPort1.BytesToRead);//.ToString();
this.Invoke(new EventHandler(ShowData));
}
我想显示comport和波特率,就像这样
我在一个表单中创建了这个应用程序,所以处理serialport不是问题,但现在的要求是不同的,我现在有三个表单。
2条答案
按热度按时间enyaitl31#
有几种可能性来解决你的问题。
可以像这样更改
Home
表单构造函数从第二种形式调用它
有了这个,你可以直接在第三种形式内管理串行端口(因此打开它内部的端口并设置事件以接收其中的数据),而无需共享其示例(可能导致其他问题恕我直言)。
如果您需要以某种方式管理串行端口,即使是在第二种形式中,那么您可以更改第三种形式的构造函数来传递它:
并将其命名为
Home home = new Home(serialPort1);
chhkpiq42#
1.您可以在
SerialPortConfig.cs
中使用save the serial port config
,Read the serial port config
从SerialPortConfig.cs
,而您在MainForm.cs
中SerialPortConfig.cs
SettingsForm.cs
MainForm.cs
Program.cs