单击用户控制按钮时,事件处理程序不会触发

时间:2013-03-05 07:39:02

标签: c# winforms

我有一个来自用户控件的按钮,并希望它在单击时通知我的表单。我就是这样做的。这是行不通的。有人能告诉我它有什么问题吗?

在用户控件

    public event EventHandler clicked;
    public string items;
    InitializedData data = new InitializedData();
    ArrayList list = new ArrayList();
    public DataInput()
    {
        InitializeComponent();
        clicked+= new EventHandler(Add_Click);

    }


    public void Add_Click(object sender, EventArgs e)
    {
        items = textBox1.Text.PadRight(15) + textBox2.Text.PadRight(15) + textBox3.Text.PadRight(15);

        if (clicked != null)
        {
            clicked(this, e);
        }
    }

在Form1中

    UserControl dataInput= new UserControl();
    public void OnChanged(){
        dataInput.clicked += Notify;
        MessageBox.Show("testing");
    }

    public void Notify(Object sender, EventArgs e)
    {
        MessageBox.Show("FIRE");
    }

由于

1 个答案:

答案 0 :(得分:2)

我应该将UserControls Button点击事件分配给Add_Click,我认为您不希望将UserControl clicked事件分配给{{ 1}}

尝试从您的UserControl中删除Add_Click并将clicked += new EventHandler(Add_Click); UserControls Button事件设置为Click,以便它会触发Add_Click { {1}}

示例:

用户控件:

clicked

形式:

Form