我有一个包含多个表单的Visual Studio项目(用于RS232通信),我希望在我的所有表单上访问相同的SerialPort
。
我的主要表格是......
private SerialPort comport = new SerialPort()
如果我将其更改为public
,我是否可以从所有窗口访问此SerialPort
以确保我能够读取/写入同一端口?
答案 0 :(得分:1)
只要其他表单有某种方式获取主表单的实例,那将会起作用。一种方法是在从主窗体创建窗体时将this
传递给窗体。然后更改其他表单构造函数以接受Form对象。表单可以使用该对象访问comport
属性:
// Main form
private void OpenSomeForm()
{
SomeForm frm = new SomeForm(this);
frm.Show();
}
// SomeForm
public class SomeForm
{
private MainForm _mainForm;
public SomeForm(MainForm mainForm)
{
InitializeComponent();
_mainForm = mainForm;
}
private WriteToSerialPort()
{
_mainForm.comport.Write(/* stuff */);
}
}