Windows窗体:用户控件和事件

Elm*_*mex 4 .net user-controls winforms

我有一个Windows窗体用户控件,它由几个控件组成.其中还有gridview控件.现在我想在表单中使用用户控件.如何检查是否单击了网格行?我想获取所选行的数据.换句话说,如何检测嵌入在用户控件中的控件的事件?

djd*_*d87 7

您需要通过添加其他事件来公开父控件中的事件:

public event EventHandler GridViewClicked;
Run Code Online (Sandbox Code Playgroud)

然后使用以下方法在您的子控件上调用它:

private void ChildControlGrid_RowClicked(object sender, EventArgs e)
{
    if (GridViewClicked != null)
    {
        GridViewClicked(sender, e);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以像在表单上的任何事件一样实现此方法:

yourControl.GridViewClicked += new EventHandler(ChildGridRowClicked);

private void ChildGridRowClicked(object sender, EventArgs e)
{
    // Child row clicked
}
Run Code Online (Sandbox Code Playgroud)