日期:2014-05-18  浏览次数:21073 次

C#中ListBox的Item双击事件
功能很简单,双击Item,将Item的值传TextBox;本来认为很基础很简单的问题,只要在控件的DoubleClick中判断一下就可以了,却没曾想没那么容易,遇到个棘手的问题。网上搜索相关资料,发现这个问题很多人都遇到过,不过解决方案都不怎么好。除了了那引自JS的解决方法还是针对Web的,我想在WinForm下解决,各位看看有什么好方法。
  起初加上if (ListBox1.Items.Count == 0) return;这一句,则在ListBox1的Item为空的时候返回,可在不为空的时候,点击空白处还是会出现问题。于是又判断SelectedIndex,为-1返回,可这么做还是有个问题,在未选中的时候一切正常,但在有选中的Item的时候问题又出现了,我双击空白处,可它把选中的那个Item的值传给TextBox了。
  在论坛里还看到一位仁兄是通过将剩下的Item填充为空,然后判断为空返回,但总感觉不是根本解决之道,特寻求各位高手帮助!

------解决方案--------------------
你可以用try 出现异常不处理 这就可以了
------解决方案--------------------
在各种事件中 当点击非法区域时你是获取不到SelectedIndex 这个时候你在处理信息时就会有异常 通常的做法都是用try 不去处理 这是最佳的处理方法 不管你用什么办法都要写一大堆的判断 很麻烦