0

我有一个 C# 应用程序,它在启动时打开两个 GUI。其中一个 GUI 打开三个虚拟 COM 端口。我希望作为同一应用程序一部分的其他 GUI 显示在这些虚拟 COM 端口上发送的数据。无论如何要共享我在打开的主/第一个 GUI 中所做的这个 COM 端口声明。

4

1 回答 1

1

三种方式:

1) 将连接实例从 Window1 复制到 Window2。

window2.Connection = this.Connection;

2)使其连接成为公共静态成员

class Window1 : Window
{
   public static SerialConnectionClass Connection { get; set; } = new SerialConnectionClass();
}

您可以像这样访问连接:

class Window2 :Window
{
...
   private void func()
   {
      Window1.Connection.Send("");
   }
}

3)制作一个静态ConnectionManager

static class ConnectionManager
{
    public static SerialConnectionClass Connection { get; set; } = new SerialConnectionClass();
    public static EventHandler MessageReceived;
    public static void Send(string text)
    {
        Connection.Send(text);
    }
    ...
}

像这样在 Window1 和 Window2 中使用它:

class Window2 :Window
{
...
   private void func()
   {
      ConnectionManager.init("COM1");
      ConnectionManager.MessageReceived += this.MessageReceived;
      ConnectionManager.Send("test123");
   }
}
于 2017-06-08T20:43:52.227 回答