你在 button1的click事件里面 调用 Class1 的 Hello静态方法就行了
{
Class1.Hello(参数);//注意 调用静态方法 用类名
}
{
Class1.Hello(参数);//注意 调用静态方法 用类名
}
解决方案 »
- 关于类库互相引用的问题
- 程序开机启动问题。
- 在线等,求正则,200分不成敬意... ...
- 在C# 界面皮肤加载后,怎样获得button按钮的背景图片
- 问个关于产品发布的数据库问题
- d在Form中用WebBrowser打开Excel后,能否再另外用Excel打开其他文件
- 在page_load中创建了几个textbox与button及事件,应该如何写才能保证资源得以释放以减轻服务器负担?
- 如何把WinForm中的DataGrid中的数据写入到Excel文件里面,高手请指教?
- 请问如何获得 任务栏上 正在闪烁的 窗口句柄呢
- 请叫一个关于udp传送文件的问题,我快疯了.
- 砸锅卖铁求资料
- 一个把string写入数据库的问题!
关键是button1也是动态生成的呀
btn.Click += new EventHandler( this.Button_Clicked );
//你可以把Click事件绑定到多个方法,也不一定要this.XXX,别的类的方法也可以,但是方法都要是与EventHandler委托有同样的方法签名,也就是方法的参数要一致事件方法:
private void Button_Clicked( object sender,EventArgs e )
{
//处理事件
}
这样写。
Button aa = new Button();
aa.Click += new EventHandler(cc);
Controls.Add(aa);
private void cc(object sender, System.EventArgs e)
{
Class1.Hello(参数);//注意 调用静态方法 用类名
}
只是注意:Button aa不要定义为局部的。
他似乎是说,有n个方法,在程序运行的时候,可以让用户输入click button1后运行的是哪个类的那个方法。
我现在有个程序,需要动态生成控件,然后将这个动态生成的控件的事件去绑定方法,
而方法事先是不知道的,只有在运行的时候由用户输入(字符串)
例如,我动态生成了一个控件button1,现在我要将button1的click事件和Class1中
的hello静态方法绑定,注意,事先并不知道要用hello方法,就是说传过来的参数是
“Class1。hello“这种字符串,如何通过这个字符串达到click事件被触发的时候就能够
调用hello方法,谢谢
老弟,我也不想呀,现在上面要我做一个自动界面生成器,控件都是动态生成的,还要能够
响应事件
string strClassName = form2.GetType().ToString();
Form frm = (Form)Activator.CreateInstance( Type.GetType( strClassName ) );
frm.Show();
首先谢谢你
我的程序是这样的,它是一个自动界面生成器,它是根据使用者的需要定制界面,即动态生成
界面,对于生成的界面和界面元素,要能够绑定事件,就是说你要做一个。net的开发环境
的简化版。
由于界面元素都是动态生成的,在绑定事件的时候,又不能事先知道应该绑定哪个方法。
例如:用户现在动态生成了button1这个控件,用户需要将button1的click事件和Class1这个
类的hello方法绑定。这些在我设计这个生成器的时候都是不知道的。
关于反射技术,我这几天都在考虑,但是最后这个办法还是行不通的
首先谢谢你,你的那个办法我也考虑了,只是这是事件绑定,不是调用方法,这个办法好像
也行不通
首先谢谢你,你说的办法我也考虑过,只是代码没有地方加
string methodName = //用户要调用的方法Type targetType = Type.GetType( className );//注意Class要完全限定名,如果不在当前装配件,需要先Load装配件的实例,然后调用Assembly的GetType方法object target = Activator.CreateInstance( targetType ); //创建一个实例来调用方法Button btn = new Button();EventHandler handler = (EventHandler)Delegate.CreateDelegate( typeof(EventHandler),target,methodName );btn.Click += handler;这是实例化对象的做法,如果你的方法是静态的,那么不需要实例化一个对象,这样即可:string className = //用户要调用的类
string methodName = //用户要调用的方法Type targetType = Type.GetType( className );
Button btn = new Button();EventHandler handler = (EventHandler)Delegate.CreateDelegate( typeof(EventHandler),targetType,methodName );btn.Click += handler;