我在WPF应用程序中使用Winforms中的notifyIcon。 Bellow是我的事件处理程序的一部分:
private void notifyIcon_Logger_MouseDown( object sender, EventArgs e )
{
var st = e.ToString();
...
我可能不会将e参数设为MouseEventArgs,因为编译器说它不匹配。但即便如此,我看到st是“System.Windows.Forms.MouseEventArgs”。怎么样?!
我已经在IDE表面上固定e以观察它以进行调试,我看到它有一个成员Button。我看到像
这样的东西Button = Right
但如果我尝试e.Button,我会 错误CS1061:'EventArgs'不包含'Button'的定义 这一切怎么可能?更重要的是,如何识别鼠标按钮?
答案 0 :(得分:0)
混合WPF和Winforms有时候会很棘手......
有两种叫做MouseEventArgs的类型。一个是System.Windows.Input命名空间中的WPF版本,另一个是System.Windows.Forms命名空间中的Winforms版本。
通过简单地将其转换为MouseEventArgs,编译器使用WPF表单,因为这是WPF应用程序,但您需要Winforms版本,因为此特定回调用于Winforms控件。因此,只需在回调定义中使用正确的命名空间来限定它......
private void notifyIcon_Logger_MouseDown( object sender, System.Windows.Forms.MouseEventArgs e )
{
var st = e.ToString();
...