Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83
1

Как правильно закрывать приложения?

14.11.2013, 20:09. Показов 1064. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ув. гуру.
Моё приложение после закрытия на крестик в правом верхнем углу продолжает висеть в диспетчере задач. Подскажите, пожалуйста, может у меня что-то не дописано в коде?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2013, 20:09
Ответы с готовыми решениями:

Как правильно хранить данные приложения.
Есть записная книжка, которая позволяет добавить запись с датой временем и описанием,...

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

Как правильно составить логику приложения (игра)?
Народ, выручайте советом! Я снова застрял на очередной задаче... Вот текст: Я застрял на...

Как правильно подключить dll для успешной работы приложения на другом ПК
Я добавляю в References проекта dll прописываю using но проблема в том что если запустить эту...

11
320 / 280 / 109
Регистрация: 27.09.2010
Сообщений: 1,058
14.11.2013, 20:18 2
Ув. Exxtazy. Скорее всего в вашем приложении используются созданные вами потоки, которые не имеют фонового режима. Соответственно когда вы "закрываете крестик", закрывается лишь графическая часть, но потоки продолжают работу. Поэтому вы и видете свою программу в диспетчере задач.
0
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83
14.11.2013, 20:20  [ТС] 3
К сожалению, я в этом совсем не разбираюсь.. как найти эти потоки? отключить или сделать для них фоновый режим?
0
Администратор
Эксперт .NET
9610 / 4752 / 761
Регистрация: 17.04.2012
Сообщений: 9,606
Записей в блоге: 14
14.11.2013, 20:35 4
Exxtazy, код приложения, пжлста.
0
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83
14.11.2013, 23:40  [ТС] 5
Вот чтото типа этого, всего 2 простеньких окошка
там ещё "Form1" есть, но он не нужен - проблема была ещё до появления этого окошка.

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
38
39
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
namespace Progname
{
    public partial class Progname : Form
    {
        public Progname()
        {
            InitializeComponent();
            StartPosition = FormStartPosition.CenterScreen;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Progname.ActiveForm.Hide();
            Form2 secondForm = new Form2();
            secondForm.StartPosition = FormStartPosition.CenterScreen;
            secondForm.ShowDialog();
            Close();
            
        }
 
        private void Progname_Load(object sender, EventArgs e)
        {
 
        }
 
        private void Progname_Load_1(object sender, EventArgs e)
        {
 
        }
    }
}
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using Microsoft.Win32;
 
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Mail;
 
namespace Progname
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("ссылка");
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            //MessageBox.Show("неверно", "Ошибка");
            if (textBox1.Text == "enter")
            {
                Progname.ActiveForm.Hide();
                Form1 thirdForm = new Form1();
                thirdForm.StartPosition = FormStartPosition.CenterScreen;
                thirdForm.ShowDialog();
                Close();
            }
            else
                MessageBox.Show("неверно", "Ошибка");
  
        }
 
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("ссылка");
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
    }
}
0
Администратор
Эксперт .NET
9610 / 4752 / 761
Регистрация: 17.04.2012
Сообщений: 9,606
Записей в блоге: 14
15.11.2013, 08:24 6
Exxtazy, вы скрываете окна, поэтому приложение висит, так как они ещё не закрыты.
Перед закрытием, попытайтесь отобразить все формы
C#
1
2
3
foreach (Form form in Application.OpenForms) {
    form.Visible = true;
}
0
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83
15.11.2013, 11:42  [ТС] 7
А как этот код прикрутить к крестику в правом верхнем углу??
0
63 / 62 / 14
Регистрация: 16.12.2012
Сообщений: 605
15.11.2013, 12:02 8
У каждой формы есть события Cloasing & Cloased. Сейчас точно не подскажу т.к. шарпа под рукой нет. Почитайте про них.
0
17 / 14 / 5
Регистрация: 14.11.2013
Сообщений: 65
15.11.2013, 12:12 9
A
C#
1
Application.Current.Shutdown();
не работает?
0
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83
15.11.2013, 12:13  [ТС] 10
ммм.. кажется такой должен быть код, прописал его во второй форме:

C#
1
2
3
4
5
6
7
        private void Form2_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            foreach (Form form in Application.OpenForms)
            {
                form.Visible = true;
            }
        }
однако при закрытие второй формы процесс продолжает висеть, вот кстати сам процесс:
***Как тут ссылки вставлять?? Они блокируются в любом виде..
0
324 / 307 / 59
Регистрация: 06.03.2013
Сообщений: 869
15.11.2013, 12:26 11
Exxtazy,
C#
1
Application.Exit();
закроет все формы, тем самым завершив приложение.
1
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83
15.11.2013, 12:40  [ТС] 12
Всё, проблемы нет Всем спасибо!
0
15.11.2013, 12:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2013, 12:40
Помогаю со студенческими работами здесь

Как правильно написать кнопку закрытия приложения
Здравствуйте. Во первых хочу сказать,что у вас все ссылки битые в теме шапки Silverlight FAQ Во...

VS2010 - Как правильно распространять свои приложения ?
Добрый день! Подскажите пожалуйста, какой порядок действий для того, чтобы заставить программу...

Как правильно проводить локализацию веб-приложения?
Посмотрел я видео Магданурова Гайдара о локализации приложений в ASP.NET. В видео приводился...

Как правильно закрывать сокет?
Здравствуйте. У меня возник вопрос: как правильно закрывать сокеты? У меня при попытке закрыть...

Как правильно закрывать книгу Excel?
Из проги открываю Xl в фоновом режиме, поработав с ним, закрываю. После необходимо открывать...

Как правильно закрывать страницы блога от индексации ПС
Здравствуйте. Создаю себе портфолио копирайтера, на котором должны присутствовать отзывы с...


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

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