0
我有兩個類,我正在使用這個窗口窗體。第一個是表單的實際代碼類,我讓它調用另一個類來執行任何數據庫操作。如何調用窗體上的按鈕?
雖然數據庫類拋出一個錯誤,因爲它必須在有特定數據時更新窗體上的某些按鈕等。
如何編寫它,以便當按鈕需要更新時,它可以更新它?就像在數據庫類裏面一樣。
我想過嘗試:
Form1.Radbutton("insert code here");
而且是正確的?
我有兩個類,我正在使用這個窗口窗體。第一個是表單的實際代碼類,我讓它調用另一個類來執行任何數據庫操作。如何調用窗體上的按鈕?
雖然數據庫類拋出一個錯誤,因爲它必須在有特定數據時更新窗體上的某些按鈕等。
如何編寫它,以便當按鈕需要更新時,它可以更新它?就像在數據庫類裏面一樣。
我想過嘗試:
Form1.Radbutton("insert code here");
而且是正確的?
爲什麼不在你的數據庫類的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;
}
+1這基本上是WPF的工作原理(使用MVVM),如果你還沒有綁定到Windows窗體,我會建議查看它,因爲它幾乎刪除了所有這些樣板代碼。 – BradleyDotNET
發佈錯誤,你會得到有利的 – Sorceri
它只是說,該按鈕不存在於當前的情況下。 – Joshua
你不能「呼叫」一個按鈕。這是一個對象,而不是一種方法。如果你需要「更新」它,那麼你可能應該考慮改變它的Text屬性。或已啓用。或BackgroundImage。哪些可能適用是非常不清楚的。 「Form1」大致相同,它是*類型*。你需要一個對象引用。 –