Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
TextBox1.Text = ListBox1.Text
ListBox1.Items.Remove(ListBox1.SelectedItem)
End Sub
本人用的是《Microsoft Visual Studio 2010》软件。ListBox1 中是有数据的。当运行代码时,为什么 TextBox1.Text 始终是空的?
这是 VB.Net 语言
ListBox1.Items.Remove(ListBox1.SelectedItem)
是不是会自动触发别一个事件?我是初学者,这是什么原理的事件?还有怎样删除 ListBoxt1 的选定内容,而不影响 TextBox1 ?我会加分的。希望你能回答。
没有选择任何一个item时,SelectedIndex=-1,
当你选择了其中一个item,SelectedIndex发生变化,触发SelectedIndexChanged事件,
ListBox1.Items.Remove运行后,选中的Item删除了,SelectedIndex再次发生变化,又触发了SelectedIndexChanged事件。
所以你选中一个item,会触发两次SelectedIndexChanged,第二次触发时会清空TextBox1的内容。
追问我已加分了。
我还想问多一个问题。如果我选择的是 SelectedIndexChanged 事件运行代码,是否会自动触发另一个事?
你好像还是在纠结,你只点了一次,但是代码运行了两次的问题。
1、SelectedIndexChanged事件是什么意思,就是SelectedIndex的值发生了改变(Chaned)的事件。
2、当你选中其中一项时,SelectedIndex的值发生改变。没有选中任何一项时,SelectedIndex的值为-1,假如你选中了第二项,SelectedIndex的值就会发生改变,变成3。
3、当你删除了选中的项时,SelectedIndex的值也会发生改变。删除选中项后,ListBox1中没有项被选择,SelectedIndex就从3(选中了第二项时SelectedIndex的值)变成了-1。
4、综合2和3,SelectedIndex的值从-1变成了3,然后从3变成了-1。两次改变,所以代码会运行两次。
追问的回答:
以SelectedIndexChanged事件为例,运行有两个前提:1、你的程序中有事件的代码;2、程序运行过程中触发了该事件。
你的代码中应该没有写其他的触发代码,那就不会有其他的触发事件发生。