关于C#自定义控件的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 11:07:01
做了一个自定义控件,里面就一个按钮,把DOCK改成了Fill使其充满了整个控件,在主窗体里这个控件单击的事件无效,要怎么样才能把自定义控件里的按钮的click事件变为自定义控件的Click
能不能详细一点,本人菜鸟

你需要自己在自定义控件定义一个委托和事件声明
然后在按钮的CLICK事件里触发
如:
委托和事件声明
public delegate void ButtonClick(object sender, EventArgs e)
public event ButtonClick AddClick;
按钮的CLICK事件中触发AddClick
private void add_Click(object sender, EventArgs e)
{
AddClick(sender, e);
}
这样你就能在自定义控件的事件列表里看到这个AddClick事件

你得用e.Row.FindControl("控件ID")方法调用控件,例如,

HyperLink link1 = (HyperLink)e.Row.FindControl("HyperLink1");//给控件命名为link1
if (link1 != null)
{
link1.Target = "_blank";//在这里就可以用控件了。
link1.NavigateUrl = "";
}

在自定义控件中,写一个自己定义的事件,当Click该按钮时,触发自己定义的事件。在主窗体中,挂接自己定义的这个事件进行处理就可以把自定义控件中的按钮Click事件中主窗体中进行处理
例如:

Class 自定义控件
{
public event EventHandler Clicked;
private void button1_Click(object sender,EventArgs e)
{
if(this.Clicked!=null)
Clicked