C#无法将一个表单隐式转换为另一个表单

时间:2016-11-16 19:55:38

标签: c# forms

所以我正在尝试存储我的主表单并打开一个新表单然而我收到此错误,这里是代码:

我在表单级别

public static frmAddBook frmkeepBooks = null;

public frmMain()
{
    InitializeComponent();
    frmkeepBooks = this;
}

该错误强调“this”称其为“Cannot inplicitly convert type Books.frmMain to Books.frmAddBook

2 个答案:

答案 0 :(得分:2)

将第一行更改为:

firebase.User

这些类型应该是相同的(或者是herited),可能不是。

答案 1 :(得分:1)

您是否只想将旧表单显示在旧表单上作为保持旧表单的对话框?我不太明白为什么您要将frmMain的实例设置为等于frmAddBook的空实例。

如果您尝试将新表单作为对话框打开,则可以执行以下操作:

public static frmAddBook frmkeepBooks;

public frmMain()
{
    InitializeComponent();
    frmKeepBooks = new frmAddBook();
    /* if you want to display the 2nd form ontop of the first disallowing 
       user interaction on the first until the 2nd form closes */
     frmKeepBooks.ShowDialog();
     // If you want to allow interaction on either form
     frmKeepBooks.Show();
     /* maybe you don't want to display the first form
        anymore after the 2nd form is displayed */
      this.Visible = false;
}

我认为这个问题需要对你要做的事情进行一些澄清。