2014-02-27 68 views
0

我有兩個類,我正在使用這個窗口窗體。第一個是表單的實際代碼類,我讓它調用另一個類來執行任何數據庫操作。如何調用窗體上的按鈕?

雖然數據庫類拋出一個錯誤,因爲它必須在有特定數據時更新窗體上的某些按鈕等。

如何編寫它,以便當按鈕需要更新時,它可以更新它?就像在數據庫類裏面一樣。

我想過嘗試:

Form1.Radbutton("insert code here"); 

而且是正確的?

+0

發佈錯誤,你會得到有利的 – Sorceri

+0

它只是說,該按鈕不存在於當前的情況下。 – Joshua

+1

你不能「呼叫」一個按鈕。這是一個對象,而不是一種方法。如果你需要「更新」它,那麼你可能應該考慮改變它的Text屬性。或已啓用。或BackgroundImage。哪些可能適用是非常不清楚的。 「Form1」大致相同,它是*類型*。你需要一個對象引用。 –

回答

2

爲什麼不在你的數據庫類的fire事件中更新按鈕文本? 這就是爲什麼你可以處理表單中的事件並更新按鈕。

例如創建委託事件

public delegate void UpdateButtonText (string text); 
public event UpdateButtonText UpdateButtonTextHandler; 

調用事件

protected void RaiseEvent 
{ 
    if (this.UpdateButtonText!= null) 
    { 
     this.UpdateButtonText(text); 
    } 
} 

在你的表格,你可以處理該事件本身

DBClass.UpdateButtonText+=HandleIt; 

protected void HandleIt(string text) 
{ 
    btnWhatever.Text = text; 
} 
+0

+1這基本上是WPF的工作原理(使用MVVM),如果你還沒有綁定到Windows窗體,我會建議查看它,因爲它幾乎刪除了所有這些樣板代碼。 – BradleyDotNET

相關問題