代码之家  ›  专栏  ›  技术社区  ›  Ben Gribaudo

事件参数-它们应该反映事件发生时的状态快照还是实时数据?

  •  2
  • Ben Gribaudo  · 技术社区  · 16 年前

    谢谢您,


    代码示例

    protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
    {
       // before MessageBox display, e.ButtonState = Pressed
       MessageBox.Show("OnPreviewMouseLeftButtonDown");
          
       // now, e.ButtonState = Released 
       base.OnPreviewMouseLeftButtonDown(e);
    }
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Ben Gribaudo    16 年前

    我发现了事件处理程序中e.ButtonState的值发生变化的原因——每次访问该属性时,都会调用底层 MouseDevice pointing this out .)

    我在博客上写过这个 http://bengribaudo.com/blog/2010/07/26/38/event-arguments-static-snapshots

        2
  •  0
  •   Bharath K    16 年前

    的任何实例成员 EventArgs 类不能保证线程安全。所以我想如果论点的内部状态发生变化,我们就不能抱怨;)

    推荐文章