ComboBox的问题,非常急.

jeffersyan 2007-07-10 12:38:47
写了下面一段代码后,运行有个奇怪的现象.就是,用鼠标点开下拉框后,用键盘的上下键在下拉框里来回选择,然后在ComboBox以外的地方点下鼠标,这时候ComboBox里面显示的始终是第一个的"0".是.NET的BUG吗?这时候应该显示的是选择的那个才对,我看了下好像是Me.ComboBox2.Items.Clear()的问题,各位DX认为是什么原因呢?谢谢

Dim A As Short
Dim B As Boolean = False
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.ComboBox2.Items.Clear()
Me.ComboBox2.Items.Add("0")
Me.ComboBox2.Items.Add("1")
Me.ComboBox2.Items.Add("2")
Me.ComboBox2.SelectedIndex = 0
B = True
End Sub

Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged

A = CShort(Me.ComboBox2.SelectedIndex)
If B = True Then
Call C()
End If
End Sub
Sub C()
B = False
Me.ComboBox2.Items.Clear()
Me.ComboBox2.Items.Add("0")
Me.ComboBox2.Items.Add("1")
Me.ComboBox2.Items.Add("2")
Me.ComboBox2.SelectedIndex = A
B = True
End Sub
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeffersyan 2007-07-10
  • 打赏
  • 举报
回复
各位DX帮帮忙啊,谢谢了.
jeffersyan 2007-07-10
  • 打赏
  • 举报
回复
放弃了选择的话,应该是显示前一次选择的值才对,做了下实验,把调用函数C这一段去掉,然后同样的操作用上下键选择了1后,这时候在ComboBox以外的地方点下鼠标后,显示的还是1.
而加上C这段调用后,就显示的是0了
ljleager 2007-07-10
  • 打赏
  • 举报
回复
用鼠标点开下拉框后,用键盘的上下键在下拉框里来回选择,然后在ComboBox以外的地方点下鼠标,

在ComboBox以外的地方点下鼠标 这个操作表示你没有确认选择,放弃了选择嘛,所以还是显示第一项了,正常的
wenh7788 2007-07-10
  • 打赏
  • 举报
回复
说实在的真不知道你想要实现什么功能的
我把你的代码试了一下
我看不出来

我还改了一下
Sub C()
B = False
Me.ComboBox2.Items.Clear()
Me.ComboBox2.Items.Add("4")
Me.ComboBox2.Items.Add("5")
Me.ComboBox2.Items.Add("6")
Me.ComboBox2.SelectedIndex = A
B = True
End Sub

当我点0也变4 点1也变5 2也变6

你也说了
放弃了选择的话,应该是显示前一次选择的值才对,做了下实验,把调用函数C这一段去掉,然后同样的操作用上下键选择了1后,这时候在ComboBox以外的地方点下鼠标后,显示的还是1.
而加上C这段调用后,就显示的是0了

是选择
你说的那只是光标(不知道说的对不对)移动了 又没有选择
最好告诉你想实现什么功能的
能不能告诉我 这什么意思
A = CShort(Me.ComboBox2.SelectedIndex)
是取得选择的Index给a 吗
jeffersyan 2007-07-10
  • 打赏
  • 举报
回复
帮帮忙哦,谢谢

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧