Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2010, 00:01   #1
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию Определить кнопку sender события.

При попытке закрыть форму, она сворачивается и прячеться в трее. Вот мне нужно узнавать, что именно нажали кнопку "Закрыть", ту что практически на всех приложениях справа сверху, красная ещё, у всех окон есть она, рядом с "Свернуть", "Развернуть".
Код:
        private void FormSetting_FormClosing(object sender, FormClosingEventArgs e)
        {
            
            if (sender.Equals(this))
            {
                e.Cancel = true; //отменить закрытие формы
                this.WindowState = FormWindowState.Minimized; //свернуть
                     System.Threading.Thread.Sleep(250); //задержка, чтобы успело свернуться
                this.Hide(); //скрыть форму
            }
        }
Casper-SC вне форума Ответить с цитированием
Старый 26.03.2010, 00:52   #2
adwaer
Пользователь
 
Регистрация: 06.06.2008
Сообщений: 47
По умолчанию

Не понимаю, в чем вопрос? Ты хочешь дать сигнал о закрытии другому процессу? Если да, то есть функция Win API, широковещательное письмо или же mailslot. Погугли про них

И я не пойму твоей идеи, ты написал: если нажали закрыть на данной форме , то сворачиваем в трей.. Может ты тебе нужно при нажатии закрыть в других окнах этой формы закрывать приложение, а с этого окна только сворачивать? Яснее выражай свой вопрос что ли..
adwaer вне форума Ответить с цитированием
Старый 26.03.2010, 01:16   #3
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

Весь код написан в событии происходящим перед закрытием формы. То есть нажму я на ту самую красную кнопку или в контекстном меню "Выход" или на любой кнопке на форме:
Код:
        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
То как ни крути выполниться этот код, что в первом посте. И приложение сворачивается. А мне нужно, чтобы хоть откуда я вызвал событие FormClosing и в нём проверилось, кто его вызвал, если та кнопка, что справа сверху (Крестик красный, для закрытия папок в проводнике например), то свернуть и скрыть, иначе, если например button, то закрыть. Но как проверить button я знаю, а как ту кнопку не знаю. Просто мне нужно, чтобы форма всё-таки закрывалась, но когда например это выберут в трее в всплывающем меню, но не по нажатии той кнопки. Надеюсь понятно изложил


Последний раз редактировалось Casper-SC; 26.03.2010 в 01:23.
Casper-SC вне форума Ответить с цитированием
Старый 26.03.2010, 04:22   #4
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

Код:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
	if (e.CloseReason == CloseReason.UserClosing)	
              //кнопка нажата		
}

а в обработчике кнопки выхода (или где надо) Application.Exit();
m0nax вне форума Ответить с цитированием
Старый 26.03.2010, 12:35   #5
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

Спасибо! В принципе такой способ подходит.
Casper-SC вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sender:TObject Superlotles Помощь студентам 10 03.12.2009 13:54
Net sender Drek Работа с сетью в Delphi 3 18.09.2009 13:42
Mail Sender Cody M. Помощь студентам 3 25.03.2009 19:51
sender as nark03 Общие вопросы Delphi 5 19.01.2009 17:11
sender as.. nark03 Помощь студентам 2 18.01.2009 16:13