Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
1 / 1 / 3
Регистрация: 26.10.2013
Сообщений: 36
1

Открыть одну форму закрыв другую

09.11.2013, 21:56. Показов 5868. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прошу помощи - еще изучаю...
Есть три формы: 1-я ввод пароля, вторая - начальная и третья дальнейшая( может быть четвертая, пятая и т.д.)
В первой форме прописал, чтобы при вводе правильного пароля открылось 2-я форма и закрылась 1-я.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 Peredacha
{
    public partial class Form1 : Form
    {
        public Form1()        {
            InitializeComponent();           
        }      
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "123")
            {
                Form2 form2 = new Form2();
                form2.Owner = this;
                form2.ShowDialog();
                this.Close();            
            }
            else
            {
                MessageBox.Show("Неправильный пароль");
                textBox1.Clear();
 
            }
 
 
        }
 
    }
Во второй форме записал:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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 Peredacha
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        private void Form2_Load(object sender, EventArgs e)
        {
            Form1 main = this.Owner as Form1;  
            if (main.textBox1.Text != "123")
                this.Close();
            else
            {
                main.Hide();
            }            
        }
 
        
    }
}
Причем, если не прописывать одновременно в первой форме " this.Close();", а во второй " main.Hide();", то или закрываются обе формы мгновенно т.е. Appcication.Close(); или висит 1-я форма в фоновом режиме вместе со второй формой.

Ладно, с этим все-таки решили( хотя, мне кажется, что то, что сделал я можно сказать мягко, не совсем правильно, но все-таки работает).

Начинается тоже самое со 2-ой и 3-ей формой.

Я хочу, чтобы при открытии 3-ей формы(по кнопке 2-формы) закрывалась вторая.

Но, опять получается или все закрывается полностью, или форма 2 висит и не закрывается при открытии третьей формы.

Если в форме 2 прописать:
C#
1
2
3
4
5
6
7
8
 private void button1_Click(object sender, EventArgs e)
        {
            Form3 f3= new Form3();
            f3.Show();
 
           this.Close();        
         
        }
то закроется все. А если в форме 3 прописать:
C#
1
2
3
4
5
private void Form3_Load(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Close();
        }
то форма 3 открывается, а форма 2 висит и не закрывается.

Подскажите, что надо сделать? И чтобы код был правильным, а не "зверинным" как у меня.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2013, 21:56
Ответы с готовыми решениями:

Закрыть одну форму и открыть другую
Когда нажимаешь на кнопку одна форма закрывается другая открывается... Додскажите... Добавлено...

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

Открыть одну форму в другой
есть форма1 и кнопка на ней,при нажатии на неё открывается форма2 в форме1 ? Помню в визуал...

Как открыть другую форму?
Форма авторизации. При вводе правильного пароля. Должна открываться другая форма (FilmsControlForm)...

4
0 / 0 / 0
Регистрация: 05.11.2013
Сообщений: 3
09.11.2013, 22:31 2
В 1ой форме:
C#
1
2
3
Form2 frm2 = new Form2();
                frm2.Show();
                this.Hide();
Во второй форме:
C#
1
2
3
Form3 frm3 = new Form3();
            frm3.Show();
            this.Hide();
Если я все правильно понял.
0
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,704
09.11.2013, 22:34 3
Открытие формы пароля можно делать в обработке события Load главной формы. ->
При вводе правильного пароля открываете главную. Открыть следующую - Hide главную, открыть следующую, а для всех последующих открыть новую, затем закрыть предыдущую. Как-то так.
0
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
09.11.2013, 23:33 4
sagal,
Для ввода пароля можно сделать примерно так Режим приватности
Смотрите в конце странички.
1
1 / 1 / 3
Регистрация: 26.10.2013
Сообщений: 36
10.11.2013, 00:05  [ТС] 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Спасибо за ответы!
Но конкретный вопрос так и остался невыясненным: Как открыть форму закрыв корректно предыдущую?
Ответ, конечно, есть: в первой форме прописать:
C#
1
2
3
4
            Form2 f = new Form2();
            f.Owner = this;
            f.ShowDialog();
            this.Close();
а во второй:

C#
1
2
Form1 main = this.Owner as Form1;
          main.Hide();
Все будет работать, но правильно ли это с точки зрения программирования в C#?
0
10.11.2013, 00:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2013, 00:05
Помогаю со студенческими работами здесь

Как закрыть одну форму, и развернуть другую
Ребята, не пойму почему после выбора radioButton, я хочу закрыть окно и открыть форму с окнами, но...

Передача в одну форму другую как параметр
Передаю одну форму в конструктор другой в качестве параметра. Делаю так: public partial class...

Как можно открыть другую форму
Как можно в С# открыть с помощью кнопки на одной форме другую? В С++ это выглядит так:...

Не могу закрыть форму и открыть другую
Точнее я первую форму закрываю а вот другая форма не открываеться. как я ето делаю: ...

Открыть через linkLabel другую форму
Здравствуйте, помогите, как реализовать следующее: есть ссылка private void...

Как закрыть форму по таймеру и открыть другую?
Как сделать, так чтобы первая форма (Форма с логотипом) после десяти секунд, закрывалась. И...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru