2016-11-16 2 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'. Вы пытаетесь рассказать курицу, что hes коровы;) –

ответ

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; 
} 

Я думаю, этот вопрос нуждается в некотором уточнении на то, что вы пытаетесь сделать точно.

Смежные вопросы