如何将自己的事件分派到控件以模拟c#中的鼠标单击?

如何将自己的事件分派到控件以模拟c#中的鼠标单击?,c#,events,mouse,mouseevent,simulate,C#,Events,Mouse,Mouseevent,Simulate,在c#中是否可以将自己的事件分派给控件 我的意思是,就像在java中一样: MouseEvent leftClick = new MouseEvent(image, MouseEvent.MOUSE_PRESSED, 0, 0, 100, 100, 1, false, MouseEvent.BUTTON1); image.dispatchEvent(leftClick); C#中的事件工作方式有点不同。您不是将事件分派给对象,而是订阅对象可用的事件并提供委托。请参阅以供参考。但是,如果您想运

在c#中是否可以将自己的事件分派给控件

我的意思是,就像在java中一样:

MouseEvent leftClick = new MouseEvent(image, MouseEvent.MOUSE_PRESSED,
0, 0, 100, 100, 1, false, MouseEvent.BUTTON1);

image.dispatchEvent(leftClick);
C#中的事件工作方式有点不同。您不是将事件分派给对象,而是订阅对象可用的事件并提供委托。请参阅以供参考。但是,如果您想运行附加到事件的代码,您可以直接调用委托,但我认为大多数人都会考虑这种不良形式。最好有一个方法来执行该操作,并从委托和您希望从中模拟单击事件的任何位置调用它

 SomeControl.LeftMouseButtonDown += new LeftMouseButtonDown(SomeControl_LeftMouseButtonDown);

 protected void SomeControl_LeftMouseButtonDown(object sender, EventArgs e) //Might be typed EventArgs instead of generic.
 {
     //Run some code or call some method.
 }
最好使用Click事件而不是LeftMouseButtonDown,因为Click事件是在LeftMouseButtonDown和LeftMouseButtonUp连续发生时引发的

您使用的控件是否没有LeftMouseButtonDown或Click事件?如果是这样,您将需要编写从该控件继承的自己的控件,并编写自己的事件

此外,如果您提供一些您正在使用的.NET技术的详细信息(WPF、WinForms、ASP.NET、Silverlight等),这也会有所帮助,因为每种技术都有不同的控制集。通过该技术了解您正在使用的控件也可能会有所帮助


希望这有帮助

我为您编写了
MouseController
。其设计用于处理Windows窗体,并通过将事件放入Windows事件队列来模拟事件


您可以在

查看源代码,您的目标是什么应用程序体系结构?Windows窗体、WPF、Silerlight?