点击时不会调用MouseClick事件

时间:2017-06-30 23:12:37

标签: c# .net winforms mouseclick-event

在我的表单类之外向MouseClick事件分配函数时遇到问题。

当我单击鼠标按钮时,事件不会被调用。

class Animator
{  
    Form1 _form = new Form1();
    Timer GameTimer;
    PictureBox GameWindow;

    public Animator(Timer gameTimer, PictureBox gameWindow)
    {
        GameTimer.Tick += GameTimer_Tick;
        GameTimer.Start();
        _form.MouseClick += Mouse_Clicked;            
        GameWindow.Paint += GameWindow_Paint;
    }

    private void Mouse_Clicked(object sender, MouseEventArgs e)
    {
        Console.Write("I AM CLICKED");           
    }

1 个答案:

答案 0 :(得分:2)

如果从现有表单调用此方法,那么您可能只需要一种方法将表单实例传递给方法(目前您正在与 new 表单进行交互)。一种方法是在方法中添加Form1参数:

class Animator
{
    private Form1 _form;

    public Animator(Form1 form)
    {
        _form = form;
        _form.MouseClick += Mouse_Clicked;

        // rest of code ommitted...

然后,当您从Animator实例化Form1时,您将传入表单的实例:

Animator animator = new Animator(this);

如果您确实打算创建Form1的新实例,则需要致电_form.Show,以便与表单进行互动:

class Animator
{
    private Form1 _form = new Form1();

    public Animator()
    {
        _form.MouseClick += Mouse_Clicked;
        _form.Show();

        // rest of code ommitted...