[英]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.