有两个按钮控件
Button1 Button2
们它各自都关联有自己的事件处理程序,
现在我要在Button1执行的时候,触发Button2的Click事件,该怎么激发,注意,是激发事件,而不是单纯地去调用对方的事件处理程序?如 his.Button2_Click(null,null);是不符合要求的,因为我要的是模拟触发一次事件,而不是单纯地去调用对方的处理程序
一个事件可以有多少处理程序,那么我就是想要触发这个事件后,所有的处理程序都会调用,我要的就是这种触发的方式
Button1 Button2
们它各自都关联有自己的事件处理程序,
现在我要在Button1执行的时候,触发Button2的Click事件,该怎么激发,注意,是激发事件,而不是单纯地去调用对方的事件处理程序?如 his.Button2_Click(null,null);是不符合要求的,因为我要的是模拟触发一次事件,而不是单纯地去调用对方的处理程序
一个事件可以有多少处理程序,那么我就是想要触发这个事件后,所有的处理程序都会调用,我要的就是这种触发的方式
解决方案 »
- 求js或者jquery 全屏代码
- '这个数字是:2'未定义
- 求解:discuz nt 3.6 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)
- 一个DataList的问题。❤❤❤❤❤❤❤❤❤
- 安装网站后遇到的问题
- 怎样做到页面转跳后清空指定名称的session?
- 请问asp.net有没年份的控件
- 如何在客户端对Web DropDownList控件清空(clear)?
- 存储过程里这一句话什么意思?select datediff(ms,@tm1,@tm2) as SEL1, datediff(ms,@tm2,@tm3) as SEL2
- 我是新新手,请朋友们指教!
- 关于在Repeater显示用户控件的问题|在线等(立刻结贴!)
- 一段超简单的HTML代码.可是邪了啊.真是邪了啊.
this.Button1.Click +=new EventHandle(button3_click);
public void button1_click(object sender,EventArgs e)
{
}public void button3_click(object sender,EventArgs e)
{
}
因为触发事件后,会提交回送页面的,不仅事件处理代码,连Page_load等都要好执行一遍的
比如在WIN32程序里,一个Click事件是由消息触发的,那么如果我们要模拟一次Click最好的方法不是去调用它的事件处事程序,而是发送一个WM_Click消触给按钮句柄,然后再由程序触发,这才符合逻辑哈,不在才开发大项目的时候,逻辑就越来越不清析了
好了,现在大家丢开ASP.NET回到纯C#的世界里,我要的产触发一个事件,再打个比方
如有两个线程
T1,T2
在T2线程运行的时候,要触发一次T1的Button1的Click事件,我现在需要就晕种触发方法
CLR再来处理WM_Click这样的Windows Message,所以你用高级的语言来实现低级的功能,
就像你想用JAVA写一个操作系统一样,完全是本末倒置,搞错了现有鸡还是先有蛋。
{
public delegate void CallMeDelegate();public event CallMeDelegate CallMeEvent;public void TellCall()
{
if(CallMeEvent!=null)CallMeEvent();//通知
}
}事件订阅方:TextEvent obj = new TestEvent();
obj.CallMeEvent += new CallMeDelegate(this.show);
public void show()
{
Console.Write("Yeah.....");
}
事件的模型我记得比谁都清楚啊,可问题是解决不了哈,我知道这个问题的严重性,已经把问题具体
化了,重开一贴
http://community.csdn.net/Expert/topic/5122/5122067.xml?temp=.1163751
public class MyButton:Button
{ public void OOnClick (EventArgs e)
{
base.OnClick (e);
} }
以后用OOnClick触发
在我眼里没有什么事件,委托,执行者,我眼里只有函数类型,函数指针或许还有一个,就是队列。下面的事情就简单了
如果你要遍历一个队列,你必须要拿到这个队列的引用(Win32中的句柄?C中的头地址?),这样就完事了,以smilnet(笨笨) 贴的典型事件模型代码做例子,你如何拿到CallMeEvent的引用?
通过obj.CallMeEvent,C# complier提示你obj.CallMeEvent只能出现在 += 或者 -=的左边。
也就是说C#不支持对Event的直接操作。或许只能使用反射来做。
using System.Collections.Generic;public delegate void display();
public class test{
public void Click(){
if(event1!=null){
//事件1
event1();
//事件2
foreach(display d in event2.GetInvocationList()){
d();
}
}
}
public event display event1;
public event display event2;
}
public class MyClass
{
public static void Main()
{
test t=new test();
t.event1+=new display(event1);
t.event2+=new display(event2);
t.event2+=new display(event3);
t.Click();
Console.Read();
}
static void event1(){
Console.WriteLine("event1");
}
static void event2(){
Console.WriteLine("event2");
}
static void event3(){
Console.WriteLine("event3");
}
}