我在程序中新建了一个form,并在这个form上添加了N个listview(listview的数量以及listview的item内容动态生成),
现在要分别响应每个listview的事件(如item[i].checked),怎么处理呢?我给每个控件设置索引并试图定义消息,但响应函数又不晓得怎么定义了。。
现在要分别响应每个listview的事件(如item[i].checked),怎么处理呢?我给每个控件设置索引并试图定义消息,但响应函数又不晓得怎么定义了。。
{
ListView myLV = new ListView();
ListViewItem item = new ListViewItem("abc");
myLV.Items.Add(item);
item = new ListViewItem("def");
myLV.Items.Add(item);
this.Controls.Add(myLV);
myLV.CheckBoxes = true; myLV.ItemChecked+=new ItemCheckedEventHandler(myLV_ItemChecked);
}
{
MessageBox.Show(e.Item.Text);
}
可能是我说的不明白,有N个listview,要求对每一个listiew都有响应(楼上兄弟讲的是响应单个listiew)
我自己是通过遍历form里的控件,找出所有listiew然后响应的,不过这样做很不直观,也很麻烦。
我想问的是有没有其他比较好的办法来处理。
不知道是不是这个意思?
Private Sub ItemChecked(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemCheckedEventArgs) _
Handles ListView1.ItemChecked, ListView2.ItemChecked '关键在这儿
Select Case CType(sender, ListView).Name
Case ListView1.Name
MsgBox("ListView1-" + e.Item.Text)
Case ListView2.Name
MsgBox("ListView2-" + e.Item.Text)
End Select
End Sub
我跟踪了,动态生成的listview根本没名字!!
所以我才给每个控件加索引的。。
谢谢楼上的两位。
对你的问题,我类似的1.1版本的解决方法是自己画,然后调客户端的javascript函数,利用ajax调服务器端方法。至于listview你可以自己给它命名,找到规律, 比如把你绑定的数据的某一ID作为他的差异名字,如"abc"+ID,这样你就可以按照规律找到控件了。