如何断开串行端口与子窗体的连接?

时间:2015-12-15 16:42:46

标签: c#

我正在更新测量α和β辐射的C#rogram。端口在C#中以父窗体(HomeForm)连接。父表单具有子表单,例如抽样计数,QC和校准。断开连接端口和连接到子窗口中的不同端口的当前选项是从父窗体退出并再次打开它以从父窗体连接新端口。

我的问题如下:(1)我可以从子窗口断开端口,子窗口是从父窗口连接的吗? (2)如果问题(1)是可能的,那么在C#中用它做什么方法?

提前感谢您的帮助。

Inseok Baek

public bool Get_Coms(string PortToConnect) 
{
  return Get_Coms(PortToConnect, 8, Parity.None, 115200, Handshake.None, StopBits.One);
}

public bool Get_Coms(string PortToConnect, int DataBits, Parity parity, int baudrate, Handshake handshake, StopBits stopbits)
{
   ....
}

1 个答案:

答案 0 :(得分:0)

向子表单添加事件并在父表单中订阅该事件。我假设您正在添加一个按钮,供用户单击以断开端口,当用户单击该按钮时,您将引发该事件,以便父表单可以决定如何处理该事件。

public class ChildForm()
{
    ... existing form code ...

    public event EventHandler<EventArgs> DisconnectClicked;

    protected void Disconnect_Clicked(object sender, EventArgs e)
    {
       if(DisconnectClicked != null)
       {
           DisconnectClicked(this, new EventArgs());
       }
    }
}

public class ParentForm()
{
    public void ShowChildForm()
    {
        ... existing code to show child ...
        child.DisconnectClicked += (sender, args) => 
        {  
            // call existing code in parent form that disconnects the port
            DisconnectPort() 
        };

       child.Show();
    }
}