我有一个自定义控件,我创建了一个图片框,一个标签和一个组合框,我想创建一个自定义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;
}
}