11 / 7 / 1
Регистрация: 30.05.2012
Сообщений: 113
1

Как заставить окно закрыватся(уничтожатся) когда оно потеряет фокус?

20.03.2013, 01:03. Показов 1424. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно вопрос.
Как заставить окно закрыватся(уничтожатся) когда оно потеряет фокус?

Не по теме:


Зы: Я сейчас создаю свое первое вин приложение. В общем есть текст я его хочу вывести как на консоль в richTextBox в новом окне, и чтобы при повторном вызове процедуры которая создает мое окно с richTextBox, пред идущие окно(уже открытое) закрывалось.

0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2013, 01:03
Ответы с готовыми решениями:

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

Найти пройденное снегоходом расстояние к моменту, когда он потеряет половину скорости
Снегоход массой m = 500 кг двигавшийся со скоростью v = 10 м/c отключает двигатель. Найти...

сворачиваются игры,проигрыватель(полноэкранный режим); теряется фокус,когда печатаю,приходится тыкать на окно заново,чтобы напечатать.стоит windows 7
сворачиваются игры,проигрыватель(полноэкранный режим); теряется фокус,когда печатаю,приходится...

Нужна такая штука: когда на второе текстовое поле попадает фокус - появляется третье поле; когда на третье поле попадает фокус - появляетя четвертое .
Здравствуйте! Помогите нарисовать такой скрипт: Открывается документ, в котором есть 2...

3
2 / 2 / 0
Регистрация: 19.03.2013
Сообщений: 12
20.03.2013, 01:17 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void Form1_Load(object sender, EventArgs e)
        {
.....
this.Deactivate += new EventHandler(Form1_Deactivate);
....//здесь какой-то еще пользовательский код 
}
 
 
void Form1_Deactivate(object sender, EventArgs e)
        {
            this.Close(); // закрытие при потере фокуса формой
        }
1
11 / 7 / 1
Регистрация: 30.05.2012
Сообщений: 113
20.03.2013, 02:01  [ТС] 3
Я понял, что есть такой метод Close(), он работает нормально.
А вот для чего следующий код был написан это загадка.
То есть я его так понимаю но.
Здесь описание обработки события с названием Form1_Load, в котором мы подписываем стандартный делегат EventHandler на событие this.Deactivate(так можно делать да? ) ) , вот для чего это все и как это должно работать?
Цитата Сообщение от Mr Zak Посмотреть сообщение
C#
1
2
3
4
5
6
private void Form1_Load(object sender, EventArgs e)
        {
.....
this.Deactivate += new EventHandler(Form1_Deactivate);
....//здесь какой-то еще пользовательский код 
}
Добавлено через 18 минут
Ладно в любом случае спасибо за оперативность, и если будет возможность растолкуй последнее, а то опыта у меня с делегатами(та и вообще) мало, никак пользоваться ими не научусь.
0
2 / 2 / 0
Регистрация: 19.03.2013
Сообщений: 12
20.03.2013, 02:44 4
Так, что-то не понял. Что именно имелось в виду здесь?
Цитата Сообщение от tihonya Посмотреть сообщение
для чего следующий код

Цитата Сообщение от tihonya Посмотреть сообщение
мы подписываем стандартный делегат EventHandler на событие
Делегат не подписывается. Метод, который подписывается на событие, и который будет обрабатывать пользовательский код, вызывается с помощью делегата.

Цитата Сообщение от tihonya Посмотреть сообщение
на событие this.Deactivate
у события название просто Deactivate. this означает указание на текущий контрол, для которого в программе должно быть обработано событие , и в данном случае можно указать именно this.
C#
1
this.Deactivate
можно написать и не this, а
C#
1
Form1.ActiveForm.Deactivate
чтобы не обращаться через this, а указать явно (иногда просто понятнее). Это не важно, но в строке
Цитата Сообщение от Mr Zak Посмотреть сообщение
this.Deactivate += new EventHandler(Form1_Deactivate);
написано, что при деактивации (или потере фокуса) активной в данный момент формой должно произойти событие под именем Form1_Deactivate. Там уже можно что угодно намалевать.

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

ИМХО - для того, чтобы вызывать методы, обрабатывать события и писать не сильно сложные программы, понимать, как реализованы делегаты (да еще и конкретно в шарпе) не обязательно.
0
20.03.2013, 02:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2013, 02:44
Помогаю со студенческими работами здесь

Создается окно и тут же закрывается. Как заставить окно оставаться рабочим открытым?
Как заставить окно оставаться рабочим открытым? Скопировал с одного исходника код (с++ WinApi) для...

Как сообщить окну что оно активно но фокус ввода не передавать?
Пишу бота для онлайн игры при помощи WinAPI. Научился нажимать в активное окно при помощи...

Как сделать так, что бы окно перемещалось когда разворачиваешь окно
Например я сделал ГУИ, в AS3 А вот как сделать что бы окна были связаны в окне, кто не поймёт в...

Как вернуть фокус в окно диалога?
Здравствуйте такой вопрос. Есть диалог выбора файла. Он создается динамически и реализован через...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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