我有一个自定义控件,我用图片框,标签和组合框创建,我想创建一个自定义的SelectedIndexChanged事件handerler,这样我可以在组合框的组件更改时执行操作,但是用它作为一个自定义控件,默认情况下我无法使用此事件,因此我希望我可以创建一个。自定义控件和事件对我来说是新的。非常感谢任何帮助,非常感谢。
答案 0 :(得分:0)
如果您只想在不告知现在选择了哪些项目的情况下触发事件,则可以执行以下操作:
public event EventHandler SelectionChanged;
protected virtual void OnSelectionChanged() {
if (SelectionChanged != null) {
SelectionChanged(this, new EventArgs());
}
}
只需在您的控件中调用OnSelectionChanged()
即可触发事件SelectionChanged
。
如果您还想知道现在选择了哪些元素,您可以使用以下内容,只需将object[]
替换为您的对象:
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;
}
}