使用MouseDownEvent

时间:2016-07-15 14:47:20

标签: wpf click mouseevent richedit-control

我正试图在RichEditControl上模拟鼠标点击。我试图解决的根本问题是如果用户在没有先点击Focus的情况下采取其他操作,则在此控件上设置RichEditControl。似乎如果您打开表单并且从不点击RichEditControl,则表示某些内容未初始化且光标不会显示。

我在这个问题上已经阅读了几个有用的blogsSO posts,他们似乎都指出我要做的事情

RichEdit.RaiseEvent( new RoutedEventArgs( <something> );

我已经写了这四行代码:

1. RichEdit.RaiseEvent( new RoutedEventArgs(Button.ClickEvent));
2. RichEdit.RaiseEvent( new RoutedEventArgs(RichEditControl.MouseDoubleClickEvent));
3. RichEdit.RaiseEvent( new RoutedEventArgs(RichEditControl.MouseDownEvent));
4. RichEdit.RaiseEvent( new RoutedEventArgs(RichEditControl.MouseUpEvent));

(1)什么都不做。这是有道理的,因为ClickEvent属于Button,而不属于RichEditControl。 (2)什么都不做。这是一次双击。我想点击一下。

(3)和(4)是让我沮丧的原因。我得到了ArgumentException

  

类型的对象&#39; System.Windows.RoutedEventArgs&#39;无法转换为类型&#39; System.Windows.Input.MouseButtonEventArgs&#39;。

这对我没有意义。 MouseDownEvent的类型为RoutedEventRoutedEventArgs的构造函数期望RoutedEvent作为参数。 RaiseEvent()期待RoutedEventArgs类型的参数。一切都很好,没有任何警告。查看堆栈跟踪,异常更深入,System.RuntimeType.TryChangeType

虽然我怀疑这会解决我的根本问题,但我仍然想尝试强制点击鼠标点击RichEditControl,看看这是否解决了我的问题。所以我的问题是,为什么MouseDoubleClickEvent会导致ArgumentException何时,从我所知道的,我传递的是正确的类型?

0 个答案:

没有答案