powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как программно закрыть MessageBox ?
12 сообщений из 12, страница 1 из 1
как программно закрыть MessageBox ?
    #32573546
Mr. GES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:-) всем привет ...
нужно программно закрыть MessageBox. То есть: выпало окно, спрашивающее о чём то ... а потом само закрылось ... :-)
Использовать форму вместо MessageBox можно, но неинтересно
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32573739
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нельзя, так как
MessageBox.Show являeтся Wrapper для Win32 API вызова MessageBox, который желаемого вами функционала не имеет.


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxfunctions/messageboxex.asp
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32573784
Mr. GES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понятно
а если сгенерить нажатие клавиши "нет" ?
хотя это уже изврат ...
надо что то придумывать ...
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32573797
smathcopm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему же нельзя??? Мы же в росии - нам всё можно...
Можно программно сгенерировать нажатие 'enter' или 'alt+f4'. А можно и того круче - уже представляю: сидит пользователь, а его мышка (курсор тобишь) медленно, но верно обретает своей целью кнопку 'ok' (или что там надо) на окне сообщения... :)
Предупреждаю, что это извращения и в 1000000 раз лучше использовать спец. созданную формочку. Но если надо, могу подсказать (с мышькой интереснее).
P.S.: А можно вообще компьютер выключить и окошко закроется :)
Во как!
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32573801
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя это уже изврат ...
надо что то придумывать ..


Ага, что то подобное модального диалога с таймером
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32574339
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нравится вариант в некоторых шароварных программах - кнопка отсчитывающая секунды. Потом можно или самому закрыть(пользователю) или автоматом(программно).
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32574350
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдя... хреново что нельзя наследоваться от MessageBox, ну покрайней мере у меня за 5 мин не получилось... А раз так, то человеческого способа окромя сделать свой МБ нет, посылку сообщений и прочего хозяйства я не расмотриваю, темболее что это, как по мне, опасно (посылаем Alt+F4, а вдруг пользователь уже закрыл МБ?).
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32574367
Mr. GES
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче не стал я мучится пока, т.к. время поджимает
я вообще отказался от этого MessageBoxa - я заменил его панелью на главной форме ... ну и анимированную иконку присадил на ту же панель ...
Просто у меня работа с устройством памяти, если я хочу его очистить - то и должна была мессага выпасть (для подтверждения), а вдруг я девайс отцеплю ?
нафиг мне этот MB
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32574451
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже вариант... но всеравно интерестно... может кто-то нашел 3-тий вариант для реализации этой фичи?
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32575900
Kilroy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто

Класс обертка для ф-ций Win32:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public class WinManager
{
 [DllImport("user32.dll")]
 public static extern IntPtr FindWindow(string className,string windowName);
 [DllImport("user32.dll")]
 public static extern int SendMessage(IntPtr hWnd,uint msg, IntPtr wParam, IntPtr lParam); 
}

Класс убивающий окно

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class WindowKiller
{
	private const uint WM_CLOSE = 0x0010;
	public static void CloseWindow(string className,string windowName)
	{
	IntPtr hWnd = WinManager.FindWindow(className,windowName);
          	WinManager.SendMessage(hWnd,WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
	}
		
}

Код формы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
private void btnTest_Click(object sender, System.EventArgs e)
{
   Thread killer = new Thread(new ThreadStart(this.CloseMessageBox));
   killer.Start();
   MessageBox.Show("Try to close me!");
}
private void CloseMessageBox()
{
   Thread.Sleep( 2000 );
   WindowKiller.CloseWindow("#32770",null);
}

Имя класса подсмотрено с помощью Spy++
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32576008
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вариант уже предлагали... но всеравно за код спасибо :)
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
как программно закрыть MessageBox ?
    #32576037
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя... каждый раз подсматривать класс Spy++ мало кайфу, почему бы лутше не заюзать второй параметр?
FindWindow(NULL, "Message Box Title")
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как программно закрыть MessageBox ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]