2016-11-16 95 views
-3

,所以我想,但是我得到这个错误来存储我的主要形式,并打开一个新的,这里是代码:C#不能一种形式隐式转换为另一种形式

我有这个在形式层面

public static frmAddBook frmkeepBooks = null; 

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

错误强调 “这” 说它 “Cannot inplicitly convert type Books.frmMain to Books.frmAddBook

+0

是的,因为这两个类没有任何关系 –

+0

你是什么意思? – Aelux

+0

'this'代表'Books.frmMain'。事实上,它不能转换成frmAddBook对象。您试图告诉一只鸡,他是一头牛;) –

回答

2

变化将第一行:

public static frmMain frmkeepBooks = null; 

类型应该相同(或遗漏),可能不是。

+0

@Steve:你对构造函数的评论是正确的,我删除/删除和更新的答案,但你的评论失去了;抱歉。 –

+0

我目前正在第一年就读大学,出于某种原因,我的第六种形式并未涵盖任何形式的编码,所以这对我来说都是新的,更不用说我写了这段代码,因为它在演讲幻灯片中显示被赋予,所以任何名称或缺乏构造函数都不完全取决于我。很难判断你是否有一位不好的老师,如果你不知道更好:L – Aelux

+0

我没有倒下你,也没有发表任何私人评论。只需继续编码,在这里提问(通常你会得到有用的评论和答案)。玩得开心编程! –

0

您是否试图在旧对话框中将新窗体显示为保持旧窗体的对话框?我不太明白你为什么试图将你的实例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; 
} 

我认为这个问题需要在你正在尝试做的正是一些澄清。