|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] окошко с вопросом (типа наг) |
|
.NET - [решено] окошко с вопросом (типа наг)
|
Пользователь Сообщения: 55 |
Здрасте. Подскажите как можно реализовать такую идею:
при запуске программы появляется второе окошко (вроде такие наг называются), где две кнопки "ок" и "отмена", причем на "ок" идет обратный отсчет. По окончании отсчета (если ничего не нажали) окошко закрывается и запускает функцию клика основного окна. Если нажата "отмена", то наг просто закрывается. самое главное-как отсчет на кнопке сделать? |
|
Отправлено: 20:15, 26-08-2010 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата Efsey:
Если я правильно понял о чём речь, то: Ну это не имоверно просто ![]() FormMsg frm = new FormMsg("Заголовок", "Сообщение", 10, ElapsedTimeButton.btnCancel); if (frm.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) { MessageBox.Show("Результат - ОК"); } else { MessageBox.Show("Результат - Отмена"); } 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 WinFormsLesson { public enum ElapsedTimeButton { btnCancel, btnOk } public partial class FormMsg : Form { /// <summary> /// Таймер закрытия окна /// </summary> Timer timerClose = new Timer(); /// <summary> /// Переменная счётчик /// </summary> int closeTime; /// <summary> /// Определяет какая кнопка будет истекать /// </summary> ElapsedTimeButton btnElapsed; public FormMsg(String Title, String TextMessage, int timeClose, ElapsedTimeButton btn) { InitializeComponent(); this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.CancelButton = this.btnCancel; this.Text = Title; this.MaximizeBox = false; this.MinimizeBox = false; this.ControlBox = false; timerClose.Interval = 1000; timerClose.Tick += new EventHandler(timerClose_Tick); timerClose.Start(); closeTime = timeClose; this.btnElapsed = btn; this.lblMessage.Text = TextMessage; switch (btnElapsed) { case ElapsedTimeButton.btnOk: this.btnOK.Text = "ОК" + " (" + (closeTime.ToString()) + ")"; break; case ElapsedTimeButton.btnCancel: this.btnCancel.Text = "Отмена" + " (" + (closeTime.ToString()) + ")"; break; } } void timerClose_Tick(object sender, EventArgs e) { if (closeTime > 0) { closeTime--; switch (btnElapsed) { case ElapsedTimeButton.btnOk: this.btnOK.Text = "ОК" + "(" + (closeTime.ToString()) + ")"; break; case ElapsedTimeButton.btnCancel: this.btnCancel.Text = "Отмена" + "(" + (closeTime.ToString()) + ")"; break; } } else { switch (btnElapsed) { case ElapsedTimeButton.btnOk: this.DialogResult = System.Windows.Forms.DialogResult.OK; break; case ElapsedTimeButton.btnCancel: this.DialogResult = System.Windows.Forms.DialogResult.Cancel; break; } timerClose.Stop(); this.Close(); } } private void btnOK_Click(object sender, EventArgs e) { this.Close(); } private void btnCancel_Click(object sender, EventArgs e) { this.Close(); } } } |
|
Последний раз редактировалось Casper-SC, 27-08-2010 в 00:03. Причина: Немного доработал код Отправлено: 23:04, 26-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
FreeBSD - Помогите с простым вопросом.... | Respekt | Общий по FreeBSD | 8 | 31-03-2010 16:14 | |
Помогите с вопросом по информатике пожалуйста :) | Megacucumber | Флейм | 5 | 04-11-2009 16:44 | |
Дополнительное окошко | FlatX007 | Хочу все знать | 6 | 04-10-2008 17:31 | |
ISA Server 2004, помогите разобраться с вопросом протоколирования | Sterran | Сетевые технологии | 1 | 30-10-2005 12:35 | |
ISA Server 2004, помогите разобраться с вопросом протоколирования | Sterran | Сетевые технологии | 2 | 28-10-2005 18:38 |
|