C#给一个按钮的 click 事件绑定两个函数,应该如何控制触发的先后顺序?
3个回答
展开全部
对于你的问题其实可以说就是控制事件执行。
事件的执行是按照事件定义的顺序来执行的,如果不考虑倒序执行,只要按照定义的顺序就可以自动执行。下面是写的示例,通过自定义事件来完成对方法的调用,如果不只调用两个事件时,也可手动增加事件。
示例:
private event EventHandler myEventHandler; //自定义事件
private void First_Click(object sender, EventArgs e)
{
MessageBox.Show("First_Click");
}
private void Second_Click(object sender, EventArgs e)
{
MessageBox.Show("Second_Click");
}
private void button1_Click(object sender, EventArgs e)
{
bool IsSequence = false; //是否顺序
if (IsSequence)
{
//顺序初始化
myEventHandler = new EventHandler(First_Click);
myEventHandler += Second_Click;
}
else
{
//倒序初始化
myEventHandler = new EventHandler(Second_Click);
myEventHandler += First_Click;
}
//开始调用
myEventHandler(sender, e);
}
事件的执行是按照事件定义的顺序来执行的,如果不考虑倒序执行,只要按照定义的顺序就可以自动执行。下面是写的示例,通过自定义事件来完成对方法的调用,如果不只调用两个事件时,也可手动增加事件。
示例:
private event EventHandler myEventHandler; //自定义事件
private void First_Click(object sender, EventArgs e)
{
MessageBox.Show("First_Click");
}
private void Second_Click(object sender, EventArgs e)
{
MessageBox.Show("Second_Click");
}
private void button1_Click(object sender, EventArgs e)
{
bool IsSequence = false; //是否顺序
if (IsSequence)
{
//顺序初始化
myEventHandler = new EventHandler(First_Click);
myEventHandler += Second_Click;
}
else
{
//倒序初始化
myEventHandler = new EventHandler(Second_Click);
myEventHandler += First_Click;
}
//开始调用
myEventHandler(sender, e);
}
追问
这个方法不靠谱, 有一些按钮, 系统已经对它绑定了事件了
追答
将系统绑字的事件都清理掉,一个按钮只保留一个事件,在这个事件里面进行判断处理。要不然你的事件没办法能控制好。还要编辑系统自动生成的*.Designer.cs文件,来控制事件的顺序。
展开全部
自定义两个事件一个click1一个click2,在click事件的处理函数中依次引发click1跟click2,然后在click1和click2的处理函数中去调用你想调用的函数
追问
这不是我想要的结果, 其实我问这个是想解决多个按钮按下的所触发的事件, 这些事件都要先通过一个判断, 我想统一给这些按钮加个点击事件, 在事件里先判断下。
追答
按钮的点击事件传递的参数sender就是引发这个事件的控件
我不明白,你不可能同一时间去点击N个按钮点击按钮肯定是有先后顺序的,所以说你向做的到底是判断什么?我觉得有可能的话你最好告诉我你要实现什么功能,具体到你要做什么,比如计算器什么的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写一个间接调用的函数C 把要调用的函数A,B按照你想要的顺序写进去 按钮click绑定C就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询