我定义了一个委托 是这样写的
public delegate void ButtonChange(Button bt, string str, bool a);
public void Change(Button bt, string str, bool a)
{
bt.Text = str;
bt.Enabled = a;
}public void ShowChange(Button bt, string str, bool a)
{
ButtonChange my = new ButtonChange(Change);
object[] obj = new object[] { str, a };
bt.Invoke(my, obj);
}传一个按钮控件进去,但是我在调用的时候,报“参数计数不匹配”的异常
由于窗体中有大量控件,如果一个控件写一个委托的话,很麻烦,有什么方法可以实现,谢谢大家。
public delegate void ButtonChange(Button bt, string str, bool a);
public void Change(Button bt, string str, bool a)
{
bt.Text = str;
bt.Enabled = a;
}public void ShowChange(Button bt, string str, bool a)
{
ButtonChange my = new ButtonChange(Change);
object[] obj = new object[] { str, a };
bt.Invoke(my, obj);
}传一个按钮控件进去,但是我在调用的时候,报“参数计数不匹配”的异常
由于窗体中有大量控件,如果一个控件写一个委托的话,很麻烦,有什么方法可以实现,谢谢大家。
解决方案 »
- 关于页面响应超时的问题
- c# 小问题
- C#如何用内存映射一个结构并读写
- 高手请帮小弟看看这句SQL语句有什么问题!谢谢~~
- 江湖救急,“C#”可以“跨平台”的疑问,Why???
- Java的重构可以借助Intellij Idea等重构浏览器.C#呢?有相关工具吗
- dataGrid中能不能禁止添加行(不出现最下面的空行),但可以编辑?
- DataSet HasChanges 问题
- 请问freetextbox1.63能在.net2002下用吗
- 我已经用通过引用两个DataSet生成了Crystal Reports,请问如何填充报表
- 大家是如何解决子窗口与线程关闭问题的?
- [求教]window.open()使用问题
frmClienUp.ShowChange( FrmClientUp.frm.button1, "停止生成", true);
eventargs
{
ButtonChange my = new ButtonChange(Change);
object[] obj = new object[] { str, a };
bt.Invoke(my, obj); ------这里改 bt.Invoke(bt,my, obj);
}
public delegate void ButtonChange(Button bt, string str, bool a);
public void Change(Button bt, string str, bool a)
{
bt.Text = str;
bt.Enabled = a;
}public void ShowChange(Button bt, string str, bool a)
{
ButtonChange my = new ButtonChange(Change);
object[] obj = new object[] {bt, str, a };//此处应该传递三个参数给委托调用指向的过程。
bt.Invoke(my, obj);
}
public delegate void ButtonChange(object[] obj);
public void Change(object[] obj)
{
bt.Text = obj[0].Tostring();
bt.Enabled =(bool)obj[1];
} public void ShowChange(Button bt, string str, bool a)
{
ButtonChange my = new ButtonChange(Change);
object[] obj = new object[] { str, a };
this.Invoke(my, obj);
}
public void Change(object sender, ShowEventArgs e)
{
((button)sender).Text=e.str;
((button)sender).Enabled = e.a;
} public void ShowChange(Button bt, string str, bool a)
{
ButtonChange my = new ButtonChange(Change);
ShowEventArgs ea=new ShowEventArgs();
ea.str=str;
ea.a=a;
bt.Invoke(my, ea);
}
public ShowEventArgs:EventArgs
{
public str="";
public bool a=false;
}
这样不知道对不