- Регистрация
- 04.10.2011
- Сообщения
- 1 004
- Благодарностей
- 632
- Баллы
- 113
создал бы тему с вопросом, как добавить таймер на вин форму. уверен накидают решений, так как в визуал студии это делается в один клик. значит и в зенно форму можно прикрутить и обработчик закрытия формы тоже.Пробовал я эту фичу для ввода смс при авторизации. Все же Windows.Forms лучше и практичнее в этом плане. Минус там только один, сложно задать таймаут. В остальном тема класс.
Да ну, не особо критичная задача была. Тут поиском закривается 98% вопросов)) лайки только успевай ставить))создал бы тему с вопросом, как добавить таймер на вин форму. уверен накидают решений, так как в визуал студии это делается в один клик. значит и в зенно форму можно прикрутить и обработчик закрытия формы тоже.
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "ЗАГОЛОВОК ОКНА";// текст заголовка
F.TopMost = true;// по верх всех окон
F.Size=new System.Drawing.Size(400, 150);// размеры окна
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;;// позиция окна
//Лейбл showtime
System.Windows.Forms.Label label = new System.Windows.Forms.Label();
label.Text = "timer 3 сек";
label.Location = new System.Drawing.Point(160,60);
label.AutoSize=true;
F.Controls.Add(label);
//Лейбл2
System.Windows.Forms.Label label2 = new System.Windows.Forms.Label();
label2.Text = "ПРОДОЛЖИТЬ СБОР ДАННЫХ ???";
label2.Location = new System.Drawing.Point(100,20);
label2.AutoSize=true;
F.Controls.Add(label2);
//создаем кнопку ДА
System.Windows.Forms.Button button = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button.Text = "ДА";
//положение в окне
button.Location = new System.Drawing.Point(40,50);
//размер кнопочки
button.Size=new System.Drawing.Size(100, 40);
//кидаем на форму
F.Controls.Add(button);
//Описание события, улавливающее нажатие Enter в текстбоксе
button.Click+= delegate(object sender, System.EventArgs e)
{
//говорим в какую переменную положить button
project.Variables["rezult"].Value = button.Text;
F.Close();
};
//создаем кнопку НЕТ
System.Windows.Forms.Button button2 = new System.Windows.Forms.Button();
//задаем имя чекбоксам
button2.Text = "НЕТ";
//положение в окне
button2.Location = new System.Drawing.Point(250,50);
//размер кнопочки
button2.Size=new System.Drawing.Size(100, 40);
//кидаем на форму
F.Controls.Add(button2);
//Описание события, улавливающее нажатие Enter в текстбоксе
button2.Click+= delegate(object sender, System.EventArgs e)
{
//говорим в какую переменную положить button2
project.Variables["rezult"].Value = button2.Text;
F.Close();
};
F.Load += delegate (object s, EventArgs v) {
timer.Interval = 3000; //время ожидания
timer.Tick += new EventHandler(delegate (object _s, EventArgs _v){
timer.Stop();
//здесь обработка полей формы
F.Close();
});
timer.Start();
};
F.ShowDialog();
return 0;
//http://zennolab.com/discussion/threads/alert-c.7860/page-2
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 };
// создаём контрол
var checkbox = new System.Windows.Forms.CheckBox { Name = "CheckBox", Text = "Чек бокс" };
dialogForm.Controls.Add(checkbox);
checkbox.Location = new Point(12, 12);
// событие Check
checkbox.CheckedChanged += (delegate
{
/* ВОТ ЗДЕСЬ ОБРАБОТКА СОБЫТИЯ Т.Е. ТЕЛО МЕТОДА. К ПРИМЕРУ */
if (checkbox.Checked) System.Windows.Forms.MessageBox.Show("Значение изменилось на true", "Обработка события CheckedChanged");
else System.Windows.Forms.MessageBox.Show("Значение изменилось на false", "Обработка события CheckedChanged");
} );
// показываем форму
var dialogResult = dialogForm.ShowDialog();
//http://zennolab.com/discussion/threads/alert-c.7860/#post45706
// создаём форму с указанным значением
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 };
// поле ввода
var textBox = new System.Windows.Forms.TextBox { Name = "InputText", Size = new Size(410, 20) };
// кладём не форму
dialogForm.Controls.Add(textBox);
// положение на форме
textBox.Location = new Point(12, 12);
// кнопка отмены
var okButton = new System.Windows.Forms.Button { Name = "OKButton", Text = @"OK", Size = new Size(75, 23) };
// кладём не форму
dialogForm.Controls.Add(okButton);
// положение на форме
okButton.Location = new Point(269, 38);
// обработка события
okButton.Click += (delegate { dialogForm.DialogResult = System.Windows.Forms.DialogResult.OK; });
// кнопка отмены
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.Cancel; });
// показывем форму
var dialogResult = dialogForm.ShowDialog();
// если не было отмены диалога
if (dialogResult != System.Windows.Forms.DialogResult.Cancel) return textBox.Text;
return 0;
Надо было конкурс шаблонов дождатся, че же ты. Примного благодарен. Можно было бы вывести в отдельную тему.вот C#
форма с таймером:System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); System.Windows.Forms.Form F = new System.Windows.Forms.Form(); F.Text = "ЗАГОЛОВОК ОКНА";// текст заголовка F.TopMost = true;// по верх всех окон F.Size=new System.Drawing.Size(400, 150);// размеры окна F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;;// позиция окна //Лейбл showtime System.Windows.Forms.Label label = new System.Windows.Forms.Label(); label.Text = "timer 3 сек"; label.Location = new System.Drawing.Point(160,60); label.AutoSize=true; F.Controls.Add(label); //Лейбл2 System.Windows.Forms.Label label2 = new System.Windows.Forms.Label(); label2.Text = "ПРОДОЛЖИТЬ СБОР ДАННЫХ ???"; label2.Location = new System.Drawing.Point(100,20); label2.AutoSize=true; F.Controls.Add(label2); //создаем кнопку ДА System.Windows.Forms.Button button = new System.Windows.Forms.Button(); //задаем имя чекбоксам button.Text = "ДА"; //положение в окне button.Location = new System.Drawing.Point(40,50); //размер кнопочки button.Size=new System.Drawing.Size(100, 40); //кидаем на форму F.Controls.Add(button); //Описание события, улавливающее нажатие Enter в текстбоксе button.Click+= delegate(object sender, System.EventArgs e) { //говорим в какую переменную положить button project.Variables["rezult"].Value = button.Text; F.Close(); }; //создаем кнопку НЕТ System.Windows.Forms.Button button2 = new System.Windows.Forms.Button(); //задаем имя чекбоксам button2.Text = "НЕТ"; //положение в окне button2.Location = new System.Drawing.Point(250,50); //размер кнопочки button2.Size=new System.Drawing.Size(100, 40); //кидаем на форму F.Controls.Add(button2); //Описание события, улавливающее нажатие Enter в текстбоксе button2.Click+= delegate(object sender, System.EventArgs e) { //говорим в какую переменную положить button2 project.Variables["rezult"].Value = button2.Text; F.Close(); }; F.Load += delegate (object s, EventArgs v) { timer.Interval = 3000; //время ожидания timer.Tick += new EventHandler(delegate (object _s, EventArgs _v){ timer.Stop(); //здесь обработка полей формы F.Close(); }); timer.Start(); }; F.ShowDialog(); return 0;
форма с чекбоксом://http://zennolab.com/discussion/threads/alert-c.7860/page-2 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 }; // создаём контрол var checkbox = new System.Windows.Forms.CheckBox { Name = "CheckBox", Text = "Чек бокс" }; dialogForm.Controls.Add(checkbox); checkbox.Location = new Point(12, 12); // событие Check checkbox.CheckedChanged += (delegate { /* ВОТ ЗДЕСЬ ОБРАБОТКА СОБЫТИЯ Т.Е. ТЕЛО МЕТОДА. К ПРИМЕРУ */ if (checkbox.Checked) System.Windows.Forms.MessageBox.Show("Значение изменилось на true", "Обработка события CheckedChanged"); else System.Windows.Forms.MessageBox.Show("Значение изменилось на false", "Обработка события CheckedChanged"); } ); // показываем форму var dialogResult = dialogForm.ShowDialog();
форма с текстовым полем://http://zennolab.com/discussion/threads/alert-c.7860/#post45706 // создаём форму с указанным значением 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 }; // поле ввода var textBox = new System.Windows.Forms.TextBox { Name = "InputText", Size = new Size(410, 20) }; // кладём не форму dialogForm.Controls.Add(textBox); // положение на форме textBox.Location = new Point(12, 12); // кнопка отмены var okButton = new System.Windows.Forms.Button { Name = "OKButton", Text = @"OK", Size = new Size(75, 23) }; // кладём не форму dialogForm.Controls.Add(okButton); // положение на форме okButton.Location = new Point(269, 38); // обработка события okButton.Click += (delegate { dialogForm.DialogResult = System.Windows.Forms.DialogResult.OK; }); // кнопка отмены 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.Cancel; }); // показывем форму var dialogResult = dialogForm.ShowDialog(); // если не было отмены диалога if (dialogResult != System.Windows.Forms.DialogResult.Cancel) return textBox.Text; return 0;
Но это все не то. надо в стандартном кубике - так удобнее и понятнее
особенно когда в многопотоке - поди разбери что откуда - а в стандартном кубике удобнее
А это че значит? В общем не осилил. Код с полем и кнопками сильно отличается от того, что с таймером.вот C#
форма с таймером:System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); System.Windows.Forms.Form F = new System.Windows.Forms.Form(); F.Text = "ЗАГОЛОВОК ОКНА";// текст заголовка F.TopMost = true;// по верх всех окон F.Size=new System.Drawing.Size(400, 150);// размеры окна F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;;// позиция окна //Лейбл showtime System.Windows.Forms.Label label = new System.Windows.Forms.Label(); label.Text = "timer 3 сек"; label.Location = new System.Drawing.Point(160,60); label.AutoSize=true; F.Controls.Add(label); //Лейбл2 System.Windows.Forms.Label label2 = new System.Windows.Forms.Label(); label2.Text = "ПРОДОЛЖИТЬ СБОР ДАННЫХ ???"; label2.Location = new System.Drawing.Point(100,20); label2.AutoSize=true; F.Controls.Add(label2); //создаем кнопку ДА System.Windows.Forms.Button button = new System.Windows.Forms.Button(); //задаем имя чекбоксам button.Text = "ДА"; //положение в окне button.Location = new System.Drawing.Point(40,50); //размер кнопочки button.Size=new System.Drawing.Size(100, 40); //кидаем на форму F.Controls.Add(button); //Описание события, улавливающее нажатие Enter в текстбоксе button.Click+= delegate(object sender, System.EventArgs e) { //говорим в какую переменную положить button project.Variables["rezult"].Value = button.Text; F.Close(); }; //создаем кнопку НЕТ System.Windows.Forms.Button button2 = new System.Windows.Forms.Button(); //задаем имя чекбоксам button2.Text = "НЕТ"; //положение в окне button2.Location = new System.Drawing.Point(250,50); //размер кнопочки button2.Size=new System.Drawing.Size(100, 40); //кидаем на форму F.Controls.Add(button2); //Описание события, улавливающее нажатие Enter в текстбоксе button2.Click+= delegate(object sender, System.EventArgs e) { //говорим в какую переменную положить button2 project.Variables["rezult"].Value = button2.Text; F.Close(); }; F.Load += delegate (object s, EventArgs v) { timer.Interval = 3000; //время ожидания timer.Tick += new EventHandler(delegate (object _s, EventArgs _v){ timer.Stop(); //здесь обработка полей формы F.Close(); }); timer.Start(); }; F.ShowDialog(); return 0;
форма с чекбоксом://http://zennolab.com/discussion/threads/alert-c.7860/page-2 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 }; // создаём контрол var checkbox = new System.Windows.Forms.CheckBox { Name = "CheckBox", Text = "Чек бокс" }; dialogForm.Controls.Add(checkbox); checkbox.Location = new Point(12, 12); // событие Check checkbox.CheckedChanged += (delegate { /* ВОТ ЗДЕСЬ ОБРАБОТКА СОБЫТИЯ Т.Е. ТЕЛО МЕТОДА. К ПРИМЕРУ */ if (checkbox.Checked) System.Windows.Forms.MessageBox.Show("Значение изменилось на true", "Обработка события CheckedChanged"); else System.Windows.Forms.MessageBox.Show("Значение изменилось на false", "Обработка события CheckedChanged"); } ); // показываем форму var dialogResult = dialogForm.ShowDialog();
форма с текстовым полем://http://zennolab.com/discussion/threads/alert-c.7860/#post45706 // создаём форму с указанным значением 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 }; // поле ввода var textBox = new System.Windows.Forms.TextBox { Name = "InputText", Size = new Size(410, 20) }; // кладём не форму dialogForm.Controls.Add(textBox); // положение на форме textBox.Location = new Point(12, 12); // кнопка отмены var okButton = new System.Windows.Forms.Button { Name = "OKButton", Text = @"OK", Size = new Size(75, 23) }; // кладём не форму dialogForm.Controls.Add(okButton); // положение на форме okButton.Location = new Point(269, 38); // обработка события okButton.Click += (delegate { dialogForm.DialogResult = System.Windows.Forms.DialogResult.OK; }); // кнопка отмены 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.Cancel; }); // показывем форму var dialogResult = dialogForm.ShowDialog(); // если не было отмены диалога if (dialogResult != System.Windows.Forms.DialogResult.Cancel) return textBox.Text; return 0;
Но это все не то. надо в стандартном кубике - так удобнее и понятнее
особенно когда в многопотоке - поди разбери что откуда - а в стандартном кубике удобнее
судя по ошибке у вас нет переменной с именем rezultА это че значит? В общем не осилил. Код с полем и кнопками сильно отличается от того, что с таймером.