我正在更新一个测量 alpha 和 beta 辐射的 C# 程序。该端口在 C# 中的父窗体 (HomeForm) 中连接。父窗体有抽样计数、QC、校准等子窗体。当前断开已连接端口并连接到子窗口中不同端口的选项是退出父窗体并再次打开它以从父窗体连接新端口。
我的问题如下: (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();
}
}
关于c# - 如何断开串行端口与子窗体的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34294750/