最近写一个程序,调用了一个外部的Dll库文件,里面有个事件。不知道怎么去调用它。用事件订阅的方式可以执行,但是在事件处理方法里面对控件赋值时,提示 Form.dll偶尔的类型出错,控件的值没有变化。不知道是怎么回事。下面是代码: public ExecClass(MainForm From) //类构造函数中订阅事件 {
base.onProgressChanged += new _IPSExchangeEvents_onProgressChangedEventHandler(main_onProgressChanged);
} /// <summary>
/// 事件处理
/// </summary>
public void main_onProgressChanged(object sender, int e)
{
TextBox1.Text = e.ToString(); //执行这里时在输出窗口中就提示类型错误了,但是e中是有值的,文本框中就没有值。求解????
}
base.onProgressChanged += new _IPSExchangeEvents_onProgressChangedEventHandler(main_onProgressChanged);
} /// <summary>
/// 事件处理
/// </summary>
public void main_onProgressChanged(object sender, int e)
{
TextBox1.Text = e.ToString(); //执行这里时在输出窗口中就提示类型错误了,但是e中是有值的,文本框中就没有值。求解????
}
第二个参数是整型,看看那个事件要的是啥类型
public class YourArgs:public EventArgs
{
public int data;
}
用YourArgs传递数据!
{
public int data;
}
args.data=100;
OnProgress(args);//触发事件你可以看看MSDN上面对事件的介绍
{
if (this.textBox1.InvokeRequired)
{
MessageOutputText txt = new MessageOutputText(ProgressChanged);
this.textBox1.BeginInvoke(txt, new object[] { sender, e });
}
else
{
this.textBox1.AppendText(e) ;
}
}