当前位置:编程学习 > C#/ASP.NET >>

Forms.UserContrl WindowsFormsHost 鼠标消息

WindowsFormsHost 上放一个Forms.UserControl
如何使这个Forms.UserControl不接收鼠标消息,直接发给WindowsFormsHost,

或者Forms.UserControl接收鼠标消息,然后转发给WindowsFormsHost,但这时有个问题,如何把Forms.MouseEventArgs转成Input.MouseEventArgs

不胜感激 --------------------编程问答-------------------- WindowsFormsHost 是什么----是不是一个form
你可以把WindowsFormsHost 的对象传递给UserControl
如果在userControl中的mouseover的事件指向WindowsFormsHost 中对应的事件 --------------------编程问答-------------------- 楼上的方法需要解决下面这个问题
“如何把Forms.MouseEventArgs转成Input.MouseEventArgs ”
How?

--------------------编程问答-------------------- Forms.UserControl有什么消息预处理函数能使鼠标消息不被处理,直接发给父窗处理吗? --------------------编程问答--------------------
引用 2 楼 jxin114 的回复:
楼上的方法需要解决下面这个问题 
“如何把Forms.MouseEventArgs转成Input.MouseEventArgs ” 
How? 

你这个Input是什么东西? --------------------编程问答-------------------- 关注+学习!!
帮你顶!!!! --------------------编程问答-------------------- System.Windows.Input.MouseEventArgs 
System.Windows.Forms.MouseEventArgs  --------------------编程问答-------------------- up --------------------编程问答-------------------- 你可以把WindowsFormsHost 的对象传递给UserControl 
如果在userControl中的mouseover的事件指向WindowsFormsHost 中对应的事件

顶。 --------------------编程问答-------------------- System.Windows.Input.MouseEventArgs 和System.Windows.Forms.MouseEventArgs 转换的的问题如何解决? --------------------编程问答-------------------- 你试试下面这个方法:
  private void OnMouseClick(object sender, Forms.MouseEventArgs e)
  {
   OnRaiseEvent(MouseClickEvent, new MouseButtonEventArgs(
    InputManager.Current.PrimaryMouseDevice, 0, ToMouseButton(e.Button)));
  }

  private void OnRaiseEvent(RoutedEvent handler, MouseButtonEventArgs e)
  {
   e.RoutedEvent = handler;
   RaiseEvent(e);
  }


  private MouseButton ToMouseButton(Forms.MouseButtons button)
  {
   switch (button)
   {
    case Forms.MouseButtons.Left:
     return MouseButton.Left;
    case Forms.MouseButtons.Right:
     return MouseButton.Right;
    case Forms.MouseButtons.Middle:
     return MouseButton.Middle;
    case Forms.MouseButtons.XButton1:
     return MouseButton.XButton1;
    case Forms.MouseButtons.XButton2:
     return MouseButton.XButton2;
   }
   throw new InvalidOperationException();
  }

补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,