很奇怪,偶在用ListBox时,发现有一问题
也就是我用MouseLeftDown,MouseDown,PreviewMouseLeftDown等事件时
对里面的项进行选择时,发现要点二次才能获得其值,[点第一次时,没反应,点第二次才能获得其值]
而当我用SelectChanged事件时,点一次就可以了,但是却不能重复选择,也就是只有当选择的项
改变时才有效,却不能在对一个项点二次时,获得其二次的值哦,对了,我用的是WPF来做的,这个问题弄很久了,还是没解决,望高手指点一二,多谢
在线等,解决马上结帖~~

解决方案 »

  1.   

    SelectChanged 选择改变时才获得值的.
    为什么不用MouseDoubleClick?
      

  2.   

      补充一点:是在Winform中做的
      

  3.   

    还没装3.0版本的WPF.
    2.0里面mouseclick是可以的.
      

  4.   


    WPF中找不到MouseClick事件,应该没有这个事件如果用MouseDoubleClick的话,就成双击了
      

  5.   

    WPF没试过,不能用click事件吗。
      

  6.   

     听说要重写MouseDown事件,便不知道如何重写
    才能使其具有MouseClick或Click这样事件的效果
    高手进来指点一下呀
      

  7.   

    MouseLeftDown之类的事件,发生在鼠标按下去的时候,此时值还没有改变成你的选择值,当然只能取到上一次选择时的值。你可以使用MouseUp、MouseClick、SelectedValueChanged、SelectedIndexChanged来处理你的数据
      

  8.   

    要可选择多项将列表的SelectionMode属性的值改为MultiSimple
      

  9.   

    3.0form也有此问题。难道是bug?等待sp
      

  10.   

    Event Routing 是从父控件到子控件再回到父控件的  PreviewParent->PreviewChild->Child->Parent所有的鼠标Event都是一个鼠标消息发到窗口后一个一个raise出来的,如果Routing过程中设置e.Handle = true, 路由停止,后面的Event就不会触发了。
    这些系统预设的Event,Source是通过HitTest取出来的。对于你,在ListBoxItem上响应MouseUp就可以了[code=XAML]
    <Style TargetType="ListBoxItem">
      <EventSetter Event="MouseUp" Handler="listBox1_MouseUp"/>
    </Style>
    [/code]