在我的表单类之外向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");
}
答案 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...