簡體   English   中英

在不同的類上捕獲按鈕單擊事件

[英]Catch button click event on different class

我有一個應該能夠與自定義設備通信的 winforms 應用程序。 我有一個主窗口,其中有一個“斷開連接”按鈕。 我有一個處理日志記錄的用戶控件和一個處理所有通信的類 (SerialCom)。

當我加載用戶控件時,我還在 SerialCom 類中設置了 com 端口。 此類接收數據,並通過 INotifyPropertyChanged 將其發送到用戶控件,請參閱此問題以獲取更多詳細信息。

我想從 MainForm 訪問 SerialCom 類,而不必new SerialCom 類。 但 SerialCom 類首先在用戶控件上創建。 (所以,如果我從 MainForm new SerialCom 類,串口將不會打開,所以我無法關閉它。)

關於如何從 B 類和 C 類訪問 A 類而無需再次新 A 類的任何提示? 我正在考慮在表單之間傳遞事件,這是最好的選擇嗎?

將您的SerialCom類變成單例。 這樣你就有了一個許多類都可以訪問的實例。 但請確保此線程安全!

請參閱此以制作線程安全的單例

也許您正在尋找單身人士。 基本上,single 是一個只允許初始化單個實例的對象,並提供一種機制(通過靜態方法/屬性)從任何地方訪問該實例。

這是我在以下鏈接中找到的一個簡單實現http://msdn.microsoft.com/en-us/library/ff650316.aspx

using System;

public class Singleton
{
   private static Singleton instance;

   private Singleton() {}

   public static Singleton Instance
   {
      get 
      {
         if (instance == null)
         {
            instance = new Singleton();
         }
         return instance;
      }
   }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM