C# 如何将事件绑定到多个列表框

C# 如何将事件绑定到多个列表框,c#,listbox,sender,C#,Listbox,Sender,我有一段代码,我想用于多个列表框。基本上,无论鼠标在哪里,都要选择该索引 driversListBox.SelectedIndex = driversListBox.IndexFromPoint(e.X, e.Y); 我该如何编写此代码,以便将此代码绑定到2-3个列表框,并将此代码应用于发件人是谁 我试着像下面这样施展,但没有运气 (Listbox)sender.IndexFromPoint(e.X, e.Y); 任何帮助都将不胜感激首先将所有列表挂接到同一事件: list1.MouseMo

我有一段代码,我想用于多个列表框。基本上,无论鼠标在哪里,都要选择该索引

driversListBox.SelectedIndex = driversListBox.IndexFromPoint(e.X, e.Y);
我该如何编写此代码,以便将此代码绑定到2-3个列表框,并将此代码应用于发件人是谁

我试着像下面这样施展,但没有运气

(Listbox)sender.IndexFromPoint(e.X, e.Y);

任何帮助都将不胜感激

首先将所有列表挂接到同一事件:

list1.MouseMove += CheckMove;
list2.MouseMove += CheckMove;
//...
listN.MouseMove += CheckMove;
然后在事件处理程序上:

var currentList = sender as ListBox;
//Now you can use currentList as it points to the list 
//which fired the event.

只需为allAnd注册相同的事件处理程序,并使用正确的语法(parantises):
((列表框)sender.IndexFromPoint(…)
@RenéVogt你是对的,但请查看Gusman的答案+他的评论-他解释了为什么
as
更好,因为他即将准确回答这个问题,但是我会使用
((ListBox)sender)代替作为列表框的
发送者,不要紧,只是想指出op犯了一个错误,但这种方法是可以的,“因为”子句更安全,而且速度更快,它只生成两行IL,而直接转换生成四行。