Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как при закрытии формы открыть новую?

47K
01 ноября 2012 года
Rayrat7
99 / / 09.06.2012
Подскажите пож как можно при закрытии формы вывести другую? (Закрываешь Form1 и открывается Form2)
через Form1_FormClosing как оказалось так не получается) просто закрывается ничего не открывая
пробовал так:

 
Код:
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing

        Form2.Visible = True

    End Sub
47K
01 ноября 2012 года
Rayrat7
99 / / 09.06.2012
разобрался все дело было в настройках приложения
47K
01 ноября 2012 года
Rayrat7
99 / / 09.06.2012
а можно как то сделать чтобы и первая форма не закрывалась?
даже если Me.Close() убрать она все равно закрывается
Где можно подправить событие закрытия? сделать чтобы просто видимость скрывать
40K
01 ноября 2012 года
D129
228 / / 18.04.2012
Если вам надо управлять формами - то это правильно делать снаружи, а не из самих форм.
Добавьте в приложение (это вас Виби разбаловал) класс


 
Код:
Public Class Program
   
    Public Shared Sub Main()      

 
            Dim form As Form1 = New Form1()
            Application.Run(form)
       
    End Sub
и управляйте поведением форм из него.
47K
01 ноября 2012 года
Rayrat7
99 / / 09.06.2012
Чет вобще въехать не могу как тут прописать что если форму 1 закрывать то она не закрывается а просто скрывается....
беда.
47K
01 ноября 2012 года
Rayrat7
99 / / 09.06.2012
Дайте пож еще подсказку чтобы разобраться смог)
47K
01 ноября 2012 года
Rayrat7
99 / / 09.06.2012
найти бы просто именно код события закрытия
он же где то есть...
и там бы прописать то что нужно
куда нужно залезть что бы такую найти если такое возможно вобще?
40K
01 ноября 2012 года
D129
228 / / 18.04.2012
Cобытие закрытия вы уже нашли.
Private Sub Form1_FormClosing - это вот оно, и еще есть, после него.
Когда оно отрабатывает, происходит выход из функции Application.Run(form)

которая в виби просто скрыта от вас, но все равно есть - и программа прекращает работу вообще.
Если вы разберетесь с моим примером, то сможете написать, допустим, так:

Application.Run(form)
Application.Run(form2)
Application.Run(form3)

- и тогда формы будут у вас открываться одна за другой.
Если вам нужно какое-то другое поведение - то подумайте о диспетчере, который не обязан быть формой, но мог бы разные формы запускать "снаружи".

И не насилуйте виби - он для примитивных случаев, если ваши потребности вышли за пределы языка и системы - надо брать другие, по аналогии с инструментами.
40K
01 ноября 2012 года
D129
228 / / 18.04.2012
 
Код:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
        }
на виби тоже так можно, это остановит закрытие формы - но сделайте выход из программы как-то, а то придется ее из Task Manager а убивать.
:-)
47K
02 ноября 2012 года
Rayrat7
99 / / 09.06.2012
пробовал уже e.Cancel = true
ага в процессах виснет
Спасибо за инфу) буду разбираться
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог