2014-02-27 38 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

相关问题