2016-09-15 6 views
1

У меня есть форма входа в систему, из которой я хочу открыть «Домашнюю форму», которую я, очевидно, сделал сам, когда логин был успешным. Вы можете посмотреть ту часть, где она должна открыть форму ниже. Он должен сделать ссылку на существующую форму правильно? Я пробовал все, но я не могу понять это.Открыть существующую форму с помощью кнопки

Но он открывает новую форму вместо формы, называемой «HomeFRM».

Как я могу открыть эту форму?

this.Hide(); 
Form _HomeFRM = new Form(); 
_HomeFRM.Show(); 



using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace DELETE 
{ 
public partial class HomeFRM : Form 
{ 
    public HomeFRM() 
    { 
     InitializeComponent(); 
    } 
} 
} 
+0

Вам следует создать экземпляр класс, полученный из класса Form. В вашем коде у вас есть _variable_ с именем _HomeFrm, но не экземпляр какого-либо класса, который определяет вашу форму. – Steve

ответ

0

Я полагаю, что ваша форма _HomeFrm определяется в файле с этим содержанием (или как это)

namespace MyForms 
{ 
    public class HomeFrm : Form 
    { 
      public HomeFrm() 
      { 
       InitializeComponent(); 
       ..... 
      } 
      .... other methods and event handlers for the HomeFrm class 
    } 
} 

Теперь, если вы хотите создать экземпляр этого класса и показать его код должен создать правильный класс, а не базового класс

// This is required to get access to all classes included 
// in the MyForms namespace unless the following code is 
// itself inside the same namespace.... 
using MyForms; 

..... 

this.Hide(); 
HomeFrm myHomeFrm = new HomeFrm(); 
myHomeFrm.Show(); 

в качестве примечания, я предлагаю, чтобы не запустить приложение с регистрационной формой и держать его скрытым в течение всего срока службы вашего приложения. При запуске с HomeFrm и внутри конструктора запустите форму входа, сохраните результат входа в глобальную переменную и обработчик события Form_Load решите, хотите ли вы продолжить или остановить приложение.

+0

Спасибо за помощь! Да, мой homefrm определяется как форма, поэтому с контентом. Я пробовал ваш код, но он не находит повторения. (снимок экрана: http://prntscr.com/ci9p8v). Любая идея почему? (ps. Мне не нужно скрывать логин, так как у меня есть персональный проект, который не будет опубликован. Спасибо в любом случае!) – Tjazz

+0

Класс HomeFrm (или все, что вы хотите назвать) должен присутствовать в вашем приложении. Пожалуйста, добавьте первые строки кода, который у вас есть в файле HomeFrm.cs (не публикуйте фотографии, а используйте ссылку редактирования под своим вопросом для обновления) – Steve

+0

Да, он существует в моем приложении. Код в исходном сообщении – Tjazz

0

Изменить на:

this.Hide(); 
_HomeFRM newForm = new _HomeFRM(); 
newForm.Show(); 

Ваш заказ форма представляет собой новый класс: «_HomeFRM»

Вы создаете новый экземпляр формы класса (которым по умолчанию пусто один) называемый как ваш пользовательский.

Вместо этого вам необходимо использовать вашу форму как класс.

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