我正在更新可测量α和β辐射的C#语法。该端口以C#的父级形式(HomeForm)连接。父表单具有子表单,例如采样计数,质量控制和校准。当前断开连接的端口并连接到子窗口中其他端口的选项是从父表单退出,然后再次打开以从父表单连接新端口。

我的问题如下:(1)我可以断开端口与子窗口的连接吗? (2)如果问题(1)是可能的,那么用C#进行处理的方法是什么?

在此先感谢您的帮助。

仁石

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)
{
   ....
}

最佳答案

将事件添加到子窗体,并在父窗体中订阅该事件。我假设您要添加一个供用户单击以断开端口连接的按钮,当用户单击该按钮时,您将引发该事件,以便父表单可以决定要执行的操作。

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();
    }
}

10-07 16:03
查看更多