0
这是我的情况,我想知道是否有可能完成什么我打算做:触发方法 - Windows窗体
我有一个类库(在C#中作出的)是内部有一个从System.Windows.Forms.Form继承的类(名为SForm)。在那个类中,我声明了一些字符串以及设置这些字符串值的方法。
public class SForm : Form
{
public string _myDate;
public void setTime(string val) { _mydate = val; }
}
在另一类,我做出触发回调的API了电话,当回调发生时,调用的方法中,从表继承的类设置值。所有的工作都很好,所有的类都被封装在一个DLL中。
public class Events
{
private SForm _form;
public void setForm(SForm f)
{
_form = f;
}
public void connect()
{
//when I call this method, connects to a device using the API, and if
//it's succesful, triggers OnCallback...
}
private void OnCallback(string retVal)
{
_form.setTime(retVal); //this works
}
}
这里是我的问题:我有一个桌面应用程序,在VB中,使用该DLL,当我从SForm继承,我想由DLL触发回调调用方法在我的形式
Public Class Form1
Inherits SForm
Private _se As Events
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Load
_se = New Events()
_se.setForm(Me)
_se.connect()
End Sub
Private Overloads Sub setTime(ByVal s As String)
MessageBox.Show(s)
End Sub
我需要的是回调触发在这种形式的“setTime”方法,并显示我的DLL发送的值(我可以推一个按钮并访问_myDate字符串的值,但我需要它自动)。那可能吗?怎么样??
谢谢百万
我不明白...我应该在哪里调用基本方法?我需要的是,当API触发OnCallback时,它会异步触发VB窗体上的方法... – ditto1977 2010-10-12 14:35:49
您应该使用override方法调用它。为什么这必须是异步的?使用表单时非常棘手,只能在创建它们的同一个线程中触摸控件。 – 2010-10-12 14:48:53
,因为我不知道什么时候OnCallback会被触发......我只是真的很想知道什么时候调用这个方法,所以我认为让OnCallback调用一个Form类的方法,会让它“推”如果这个表格是继承的... – ditto1977 2010-10-12 14:55:10