向自定义控件添加事件处理程序



我有一个自定义控件,我创建了一个图片框,一个标签和一个组合框,我想创建一个自定义SelectedIndexChanged事件处理程序,这样我就可以在索引改变组合框时执行操作,但它是一个自定义控件,这个事件默认情况下不可用,所以我希望我能创建一个。自定义控件和事件对我来说是新的。任何帮助都将不胜感激,非常感谢。

如果你只是想触发事件而不告诉哪些项目现在被选中,你可以这样做:

public event EventHandler SelectionChanged;
protected virtual void OnSelectionChanged() {
    if (SelectionChanged != null) {
        SelectionChanged(this, new EventArgs());
    }
}

在你的控制范围内调用OnSelectionChanged(),事件SelectionChanged将被触发。

如果你还想知道哪些元素现在被选中,你可以使用以下命令,只需将object[]替换为你的objectarray:

public event SelectionChangedEventHandler SelectionChanged;
public delegate void SelectionChangedEventHandler(object sender, SelectionChangedEventArgs e);
protected virtual void OnSelectionChanged(object[] SelectedItems) {
    if (SelectionChanged != null) {
        SelectionChanged(this, new SelectionChangedEventArgs(SelectedItems));
    }
}
public class SelectionChangedEventArgs : EventArgs {
    public object[] SelectedItems { get; private set; }
    public SelectionChangedEventArgs(object[] SelectedItems) {
        this.SelectedItems = SelectedItems;
    }
}

相关内容

  • 没有找到相关文章

最新更新