例如,我想自定义一个button的click事件btn_definition,而不去用它默认的方法,这个该如何实现呢?
这个例子举的有点问题,不好意思,我也一时想不出有哪些好的例子,请高手把他理解成一类问题吧。
谢谢了。
16 个解决方案
#1
确实没理解,正在学习中,过一段时间可以回答这个问题。
#2
编写自己的事件。。。委托实现的。
#3
#4
初始化界面的时候,加上这一句:
this.btn_definition+=new System.EventHandler(event_name);
试试看,event_name是你自己写的事件
this.btn_definition+=new System.EventHandler(event_name);
试试看,event_name是你自己写的事件
#5
.
#6
你随便在网上搜索以下C# event 的实现,很简单的!
#7
public event EventHandle Youreventname;
in your function
if(Youreventname!=null)
Youreventname(object,object);
in your function
if(Youreventname!=null)
Youreventname(object,object);
#8
委托事件
#9
委托事件这个东西,不好理解啊,以前还用过一些
#10
不太明白你的意思
按你所描述的需求,如下代码就可以解决问题
public class MyButton : Button
{
protected override void OnClick(EventArgs e)
{
//这里处理你自己的代码
base.OnClick(e);
}
}
按你所描述的需求,如下代码就可以解决问题
public class MyButton : Button
{
protected override void OnClick(EventArgs e)
{
//这里处理你自己的代码
base.OnClick(e);
}
}
#11
还有,你是没有办法去控制button的点击事件的,除非你用钩子。
就是说不用钩子的话,button的点击事件必然发生,但你可以在类里自己定义一个点击事件处理函数,这样也能达到你的目的,比如
public class MyButton : Button
{
public MyButton
{
this.Click +=new EventHandler(SelfClick);
}
private void SelfClick( object sender, EventArgs e)
{
}
}
就是说不用钩子的话,button的点击事件必然发生,但你可以在类里自己定义一个点击事件处理函数,这样也能达到你的目的,比如
public class MyButton : Button
{
public MyButton
{
this.Click +=new EventHandler(SelfClick);
}
private void SelfClick( object sender, EventArgs e)
{
}
}
#12
界面,在Button控件的OnClick里写自己的事件名称~~
后台。。
后台。。
Button控件.Click += new System.EventHandler(事件名称);
#13
如果不是默认的事件。。。自己写委托写事件吧~~
#14
重写控件
#15
委托
#16
新建用户控件继承你需要的那个最相近功能的控件,如果要添加事件,需要通过代理委托实现
如:
public event SelectionChangedEventHandler SelectionChanged; //选择事件
private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (SelectionChanged != null)
{
SelectionChangedEventArgs E = new SelectionChangedEventArgs(comboBox1.Text);
SelectionChanged(this, E);
}
剩下的就是在你需要的窗体中注册这个事件
你定义的控件.SelectionChanged += new SelectionChangedEventHandler(你定义的控件_SelectionChanged);
Good Luck!!!
如:
public event SelectionChangedEventHandler SelectionChanged; //选择事件
private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (SelectionChanged != null)
{
SelectionChangedEventArgs E = new SelectionChangedEventArgs(comboBox1.Text);
SelectionChanged(this, E);
}
剩下的就是在你需要的窗体中注册这个事件
你定义的控件.SelectionChanged += new SelectionChangedEventHandler(你定义的控件_SelectionChanged);
Good Luck!!!
#1
确实没理解,正在学习中,过一段时间可以回答这个问题。
#2
编写自己的事件。。。委托实现的。
#3
http://www.cnblogs.com/jyk/archive/2008/07/15/1243054.html
http://www.cnblogs.com/yanyangtian/archive/2008/12/17/1265466.html
http://www.cnblogs.com/yanyangtian/archive/2008/12/17/1265466.html
#4
初始化界面的时候,加上这一句:
this.btn_definition+=new System.EventHandler(event_name);
试试看,event_name是你自己写的事件
this.btn_definition+=new System.EventHandler(event_name);
试试看,event_name是你自己写的事件
#5
.
#6
你随便在网上搜索以下C# event 的实现,很简单的!
#7
public event EventHandle Youreventname;
in your function
if(Youreventname!=null)
Youreventname(object,object);
in your function
if(Youreventname!=null)
Youreventname(object,object);
#8
委托事件
#9
委托事件这个东西,不好理解啊,以前还用过一些
#10
不太明白你的意思
按你所描述的需求,如下代码就可以解决问题
public class MyButton : Button
{
protected override void OnClick(EventArgs e)
{
//这里处理你自己的代码
base.OnClick(e);
}
}
按你所描述的需求,如下代码就可以解决问题
public class MyButton : Button
{
protected override void OnClick(EventArgs e)
{
//这里处理你自己的代码
base.OnClick(e);
}
}
#11
还有,你是没有办法去控制button的点击事件的,除非你用钩子。
就是说不用钩子的话,button的点击事件必然发生,但你可以在类里自己定义一个点击事件处理函数,这样也能达到你的目的,比如
public class MyButton : Button
{
public MyButton
{
this.Click +=new EventHandler(SelfClick);
}
private void SelfClick( object sender, EventArgs e)
{
}
}
就是说不用钩子的话,button的点击事件必然发生,但你可以在类里自己定义一个点击事件处理函数,这样也能达到你的目的,比如
public class MyButton : Button
{
public MyButton
{
this.Click +=new EventHandler(SelfClick);
}
private void SelfClick( object sender, EventArgs e)
{
}
}
#12
界面,在Button控件的OnClick里写自己的事件名称~~
后台。。
后台。。
Button控件.Click += new System.EventHandler(事件名称);
#13
如果不是默认的事件。。。自己写委托写事件吧~~
#14
重写控件
#15
委托
#16
新建用户控件继承你需要的那个最相近功能的控件,如果要添加事件,需要通过代理委托实现
如:
public event SelectionChangedEventHandler SelectionChanged; //选择事件
private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (SelectionChanged != null)
{
SelectionChangedEventArgs E = new SelectionChangedEventArgs(comboBox1.Text);
SelectionChanged(this, E);
}
剩下的就是在你需要的窗体中注册这个事件
你定义的控件.SelectionChanged += new SelectionChangedEventHandler(你定义的控件_SelectionChanged);
Good Luck!!!
如:
public event SelectionChangedEventHandler SelectionChanged; //选择事件
private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
if (SelectionChanged != null)
{
SelectionChangedEventArgs E = new SelectionChangedEventArgs(comboBox1.Text);
SelectionChanged(this, E);
}
剩下的就是在你需要的窗体中注册这个事件
你定义的控件.SelectionChanged += new SelectionChangedEventHandler(你定义的控件_SelectionChanged);
Good Luck!!!