Помогите модернизировать код

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
Добрый день, взял с форума следующий код:
Код:
// показываем сообщениеSystem.Windows.Forms.DialogResult result = System.Windows.Forms.MessageBox.Show("Текст", "Заголовок", System.Windows.Forms.MessageBoxButtons.YesNo);
// если да
if (result == System.Windows.Forms.DialogResult.Yes) return 1;
return 0;
Как его модернизировать чтобы если прошло например 60 секунд автоматически нажималась кнопка да или нет
 

maxxZEN

Client
Регистрация
18.03.2012
Сообщения
596
Благодарностей
113
Баллы
43
Я искал решение этого вопроса в интернете на программерских форумах, и это толи невозможно, то ли капец как сложно. Хотя возможно это я плохо искал.
 

Hungry Bulldozer

Moderator
Регистрация
12.01.2011
Сообщения
3 441
Благодарностей
834
Баллы
113
Нужно под CodeCreator?
 

maxxZEN

Client
Регистрация
18.03.2012
Сообщения
596
Благодарностей
113
Баллы
43

shade

Client
Регистрация
19.11.2010
Сообщения
580
Благодарностей
346
Баллы
63
Скорее снипет C#
JavaScript:
// создаём форму с указанным значением
var dialogForm = new System.Windows.Forms.Form { Size = new Size(450, 110), ShowIcon = false, Name = "DialogForm", Text = @"Заголовок", 
                FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog, MinimizeBox = false, MaximizeBox = false };

System.Threading.Thread thread = null;

dialogForm.Shown += (
delegate {
            thread = new System.Threading.Thread(() => 
                        {
                            System.Threading.Thread.Sleep(10000); // здесь установка времени в мс; 1 с = 1000 мс
                            dialogForm.DialogResult = System.Windows.Forms.DialogResult.Yes; // здесь то что нужно нажать
                        });
            thread.Start();
         });

// поле сообщения
var label = new System.Windows.Forms.Label { Name = "InputText", Size = new Size(410, 20), Text = "Сообщение .............................. ...................."};
// кладём не форму
dialogForm.Controls.Add(label);
// положение на форме
label.Location = new Point(12, 12);

// кнопка отмены
var okButton = new System.Windows.Forms.Button { Name = "OKButton", Text = @"Да", Size = new Size(75, 23) };
// кладём не форму
dialogForm.Controls.Add(okButton);
// положение на форме
okButton.Location = new Point(269, 38);
// обработка события
okButton.Click += (delegate { dialogForm.DialogResult = System.Windows.Forms.DialogResult.Yes; }); 
 
// кнопка отмены
var cancelButton = new System.Windows.Forms.Button { Name = "CancelButton", Text = @"Нет", Size = new Size(75, 23)};
// кладём не форму
dialogForm.Controls.Add(cancelButton);
// положение на форме
cancelButton.Location = new Point(347, 38);
// обработка события
cancelButton.Click += (delegate { dialogForm.DialogResult = System.Windows.Forms.DialogResult.No; }); 
 
// показывем форму
var dialogResult = dialogForm.ShowDialog();
try 
{
    thread.Abort();
}
catch(Exception) {}
// если не было отмены диалога
if (dialogResult == System.Windows.Forms.DialogResult.Yes) return 1;
return 0;
:D
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 885
Баллы
113

Max

Client
Регистрация
17.06.2012
Сообщения
168
Благодарностей
44
Баллы
28
System.Threading.Thread.Sleep(time); Ждешь потом, ставишь dialogForm.DialogResult = System.Windows.Forms.DialogResult.No. Из закрываешь форму Form.Hide() В любом случае ты событие кнопок привязываешь к каким то действиям. Тупо закрывай форму автоматом и вызывай, что нужно.
 

shade

Client
Регистрация
19.11.2010
Сообщения
580
Благодарностей
346
Баллы
63

shade

Client
Регистрация
19.11.2010
Сообщения
580
Благодарностей
346
Баллы
63
System.Threading.Thread.Sleep(time); Ждешь потом, ставишь dialogForm.DialogResult = System.Windows.Forms.DialogResult.No. Из закрываешь форму Form.Hide() В любом случае ты событие кнопок привязываешь к каким то действиям. Тупо закрывай форму автоматом и вызывай, что нужно.
ShowDialog - блокирует выполнения кода и ожидает получения результата. Если поставить System.Threading.Thread.Sleep(time); в том же потоке то реакция формы будет остановлена на время time. Как я понял в вашем случаи будет:
1. Показ формы
2. Ожидания time
3. System.Windows.Forms.DialogResult.No
4. Form.Hide() - это не нужно т.к. при вызове dialogForm.DialogResult = System.Windows.Forms.DialogResult.{ЧТО-ТО} форма закрывается автоматически
и окошко не будет реагировать на пользовательское нажатие
Тупо закрывай форму автоматом и вызывай, что нужно.
Тогда какой смысл в выводе alert'a? Или я что то не понял?
 
  • Спасибо
Реакции: Porosenok

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)