从多个表单访问1 Comport

时间:2014-01-29 19:49:28

标签: c# visual-studio visual-studio-2012 serial-port

我有一个包含多个表单的Visual Studio项目(用于RS232通信),我希望在我的所有表单上访问相同的SerialPort

我的主要表格是......

private SerialPort comport = new SerialPort()

如果我将其更改为public,我是否可以从所有窗口访问此SerialPort以确保我能够读取/写入同一端口?

1 个答案:

答案 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 */);
    }
}