none
Не показывается форма RRS feed

  • Вопрос

  • Есть программа. Там 2 формы. На главной форме есть кнопка. При нажатии главная форма скрывается, появляется дополнительная (именно скрывается, а не закрывается. Она в последствии будет выполнять нужные мне функции). При нажатии крестика на дополнительной форме должна дополнительная форма закрываться, а главная форма показываться. Вот собственно код:

    Форма 1:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Картотека
    {
        public partial class Main_form : Form
        {
            public Main_form()
            {
                InitializeComponent();
            }
     
            private void main_add_button_Click(object sender, EventArgs e)
            {
                Main_form MainForm = new Main_form();
                more_form moreForm = new more_form();
                this.Hide();
                moreForm.Show();
            }
        }
    }

    Форма 2:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
     
    namespace Картотека
    {
        public partial class more_form : Form
        {
            public more_form()
            {
                InitializeComponent();
                                               }
            private void more_form_FormClosing(Object sender, FormClosingEventArgs e)
            {
                Main_form MainForm = new Main_form();
                more_form moreForm = new more_form();
                            MainForm.Show();
            }
        }
    }

    При моём коде при нажатии крестика на дополнительной форме дополнительная форма закрывается, главная форма не показывается и приложение продолжает работать (т.е. как-бы все формы закрыты или спрятаны, а приложение работает)


    Я добавил кнопку, код (действие закрытия) скопировал в кнопку. Теперь всё работает нормально. Но по нажатию кнопки. А мне нужно по нажатию крестика. Может я использую какие-то не те методы? Т.е. проблема как я понял в form closing.
    • Изменено diargon345 17 ноября 2014 г. 11:09
    17 ноября 2014 г. 11:08

Ответы

  • Откройте свойства формы и для события FormClosing выберете имя этого метода из списка.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа diargon345 17 ноября 2014 г. 15:53
    17 ноября 2014 г. 15:51

Все ответы

  • Как-то так:

    Форма 1:

    public partial class Form1 : Form
    {
    	public Form1()
    	{
    		InitializeComponent();
    	}
    
    	private void button1_Click(object sender, EventArgs e)
    	{
    		Form2 f2 = new Form2();
    		Hide();
    		f2.Show(this);
    	}
    }

    Форма 2:

    public partial class Form2 : Form
    {
    	public Form2()
    	{
    		InitializeComponent();
    	}
    
    	private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    	{
    		Owner.Show();
    	}
    }


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    17 ноября 2014 г. 14:05
  • То же самое - главная форма не показывается, пробграмма продолжает работу (программа рпаботает, все формы скрыты или закрыты)

    Файл с проектом:

    su0.ru/Nypm

    17 ноября 2014 г. 15:33
  • То же самое - главная форма не показывается, пробграмма продолжает работу (программа рпаботает, все формы скрыты или закрыты)

    Файл с проектом:

    su0.ru/Nypm

    Вы изменили код только в форме 1, а форма 2 осталась без изменений, потому и не работает :)

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    17 ноября 2014 г. 15:37
  • В этой версии (которую я скинул) я код не менял. Но у себя на компьютере код изменил. Могу перезалить. Результат тот же.
    17 ноября 2014 г. 15:43
  • Кроме того в Вашем проекте метод

    more_form_FormClosing

    почему-то не установлен в качестве обработчика события FormClosing


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    17 ноября 2014 г. 15:44
  • Перезалил.

    А как установить?

    17 ноября 2014 г. 15:49
  • Откройте свойства формы и для события FormClosing выберете имя этого метода из списка.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

    • Помечено в качестве ответа diargon345 17 ноября 2014 г. 15:53
    17 ноября 2014 г. 15:51
  • Откройте свойства формы и для события FormClosing выберете имя этого метода из списка.

    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!


    Видимо в этом и была проблема
    17 ноября 2014 г. 15:53