C#,用户控制,事件 - 用户控制的控制事件覆盖?

时间:2012-04-11 13:15:46

标签: c# events button user-controls event-handling

在我的C#程序中,我有一个带有标签和按钮的自定义控件。如何设置我的控件,以便当用户单击按钮时它会覆盖自定义控件的Click事件?

3 个答案:

答案 0 :(得分:2)

只需调用控件的OnClick()方法:

    private void button1_Click(object sender, EventArgs e) {
        this.OnClick(e);
    }

触发控件的Click事件。

答案 1 :(得分:1)

你可以这样写:

public new event EventHandler Click {
  add { button1.Click += value; }
  remove { button1.Click -= value; }
}

答案 2 :(得分:0)

以下是完整文章,向您解释如何实现它:Exposing Custom event from custom control

以下是用户控制和曝光事件中使用的步骤,您需要为您执行相同操作按钮,阅读上述链接后您将获得更多想法

步骤1:在用户控制cs文件中注册事件

public event EventHandler DrpChange;

第2步:在usercontrol cs文件中处理引发事件的虚函数

public virtual void OnDropDownChange()
    {
        if (DrpChange != null)
        {
            this.DrpChange(this, EventArgs.Empty);
        }
    }

步骤3:在ASCX.CS文件中的下拉列表的更改事件中注册

protected void ddlDropDown_SelectedIndexChanged(object sender, EventArgs e)
    {
        this.OnDropDownChange();
    }

第4步:在页面上使用用户控件并利用公开自定义事件.Aspx页面

<uc1:commondropdowncontrol autopostback="true" drpchange="usrDrp_DrpChange" id="usrDrp" labletext="Country" runat="server">
    </uc1:commondropdowncontrol></div>
</form>