我创建它之后,我无法在我的程序中调用我的新表单

时间:2014-12-22 00:23:21

标签: c#

我不知道这个错误是如何产生的。这是我的代码和错误。 我在解决方案资源管理器中创建了一个新表单,并以我的主表单编写了这些代码。我确定我在下面使用的hitbox是正确的。

 public partial class HomePageForm : Form
 {
    OptionsPageForm frmOptions;
 }
 private void HomePageForm_MouseClick(object sender, MouseEventArgs e)
 {
     if (this.homePageOptionsButtonHitBox.Contains(e.Location))
     {
         this.Enabled = false;
         frmOptions = new OptionsPageForm(this);
         frmOptions.Show();
     }
 }

这些是我在我的“frmOptions”中写的代码 - 这是我想要调用的形式。

public partial class OptionsPageForm : Form
{
    OptionsPageForm frmHomePage;

    public OptionsPageForm(HomePageForm frmCreator)
    {
        InitializeComponent();
        frmHomePage =frmCreator;
    }
}

visual studio提供的错误是:

  

无法将“My Application_.MainPageForm”类型隐式转换为“My Application_.OptionsPageForm”。

这是我在此应用程序中执行的另一种表单调用,它与我对frmOptionsPage的调用具有相同的结构,但它运行良好。

public partial class HomePageForm : Form
{
    GamePageForm frmGame;
}
private void HomePageForm_MouseClick(object sender, MouseEventArgs e)
{
    if (this.homePageStartButtonHitBox.Contains(e.Location))
    {
         this.Hide();
         frmGame = new GamePageForm(this);
         frmGame.Show();
    }
}

(在Gamepage表格中)

public partial class GamePageForm : Form
{
    HomePageForm frmHomePage;

    public GamePageForm(HomePageForm frmCreator)
    {
        InitializeComponent();
        frmHomePage = frmCreator;
    }
}

我现在真的想得到一些帮助。

1 个答案:

答案 0 :(得分:0)

我认为您需要将鼠标Click事件处理程序移动到类

public partial class HomePageForm : Form
{
    GamePageForm frmGame;

    private void HomePageForm_MouseClick(object sender, MouseEventArgs e)
    {
         if (this.homePageStartButtonHitBox.Contains(e.Location))
        {
             this.Hide();
             frmGame = new GamePageForm(this);
             frmGame.Show();
        }
    }

}