none
窗体的问题:自己设计的控件,两个按钮横着顺序放在一起,事件怎么办? RRS feed

  • 问题

  • 两个Button,左部的按钮叫but,右的按钮叫X_button,控件名BU。

    它是被用作文件开关,所以一定要有按下X_button就关闭文件,X_button是控件的一个私有字段,那么在主窗体中一定找不到,是公有字段,又说它不能设置事件,怎么办?

    后来我将X_button和but都改成BU的属性结果如下

    到底我该如何让X_button和but在BU之外添上它们应该响应的事件呢?

    • 已编辑 czhch 2018年11月5日 6:41 之后进展更糟糕
    2018年11月5日 1:51

答案

  • 你好,

    我们可以使用Event Handle来实现,下面的代码你可以参考一下:

    单击UserControl上的Button1时,将触发Button1_Click,触发Form上的UserControl_ButtonClick:

    #UserControl.

    public event EventHandler ButtonClick;
    
    protected void Button1_Click(object sender, EventArgs e)
    {
        //bubble the event up to the parent
        if (this.ButtonClick!= null)
            this.ButtonClick(this, e);               
    }

    #窗体:

    UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);
    
    protected void UserControl_ButtonClick(object sender, EventArgs e)
    {
        //handle the event 
    }

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 czhch 2018年11月5日 11:05
    2018年11月5日 8:11
    版主

全部回复

  • 你好,

    我们可以使用Event Handle来实现,下面的代码你可以参考一下:

    单击UserControl上的Button1时,将触发Button1_Click,触发Form上的UserControl_ButtonClick:

    #UserControl.

    public event EventHandler ButtonClick;
    
    protected void Button1_Click(object sender, EventArgs e)
    {
        //bubble the event up to the parent
        if (this.ButtonClick!= null)
            this.ButtonClick(this, e);               
    }

    #窗体:

    UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);
    
    protected void UserControl_ButtonClick(object sender, EventArgs e)
    {
        //handle the event 
    }

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 czhch 2018年11月5日 11:05
    2018年11月5日 8:11
    版主
  • 在VS17事件就还是这样,我就想到VS10一进VS10全都通过,为什么?
    2018年11月19日 8:15