Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] окошко с вопросом (типа наг)

Ответить
Настройки темы
.NET - [решено] окошко с вопросом (типа наг)

Аватара для Efsey

Пользователь


Сообщения: 55
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здрасте. Подскажите как можно реализовать такую идею:

при запуске программы появляется второе окошко (вроде такие наг называются), где две кнопки "ок" и "отмена", причем на "ок" идет обратный отсчет.
По окончании отсчета (если ничего не нажали) окошко закрывается и запускает функцию клика основного окна.
Если нажата "отмена", то наг просто закрывается.

самое главное-как отсчет на кнопке сделать?

Отправлено: 20:15, 26-08-2010

 

Новый участник


Сообщения: 12
Благодарности: 1

Профиль | Отправить 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] окошко с вопросом (типа наг)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход