Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Текст программы.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
102.68 Кб
Скачать

PasswordRequest.Cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace VStepanov.CourseWork.First.Gui

{

    /// <summary>

    /// Форма запроса пароля.

    /// Всегда модальна.

    /// </summary>

    public partial class PasswordRequest : Form

    {

        /// <summary>

        /// Свойство, хранящее введённый пароль.

        /// </summary>

        public string Password { get; private set; }

        /// <summary>

        /// Конструктор формы запроса пароля.

        /// </summary>

        public PasswordRequest()

        {

            InitializeComponent();

        }

        /// <summary>

        /// Обработчик нажатия на кнопку "Расшифровать".

        /// </summary>

        private void buttonPassword_Click(object sender, EventArgs e)

        {

            Password = textBoxPassword.Text;

            this.Close();

        }

    }

}

Program.Cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace VStepanov.CourseWork.First.Gui

{

    static class Program

    {

        public static SplashForm MainForm { get; private set; }

        /// <summary>

        /// Главная точка входа для приложения.

        /// </summary>

        [STAThread]

        static void Main()

        {

            Application.EnableVisualStyles();

            Application.SetCompatibleTextRenderingDefault(false);

            MainForm = new SplashForm();

            Application.Run(MainForm);

        }

    }

}

SplashForm.Cs

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 VStepanov.CourseWork.First.Gui

{

    /// <summary>

    /// Класс выводящий сплеш-скрин и переключающий на нужный режим работы.

    /// </summary>

    public partial class SplashForm : Form

    {

        #region Вложенные классы

        /// <summary>

        /// Константы, описывающие вид формы.

        /// </summary>

        public enum FormType

        {

            /// <summary>

            /// Анимированная форма.

            /// </summary>

            Animated

        }

        #endregion

        /// <summary>

        /// Текущая активная форма.

        /// </summary>

        public Form CurrentForm { get; private set; }

        /// <summary>

        /// Конструктор формы.

        /// </summary>

        public SplashForm()

        {

            InitializeComponent();

        }

        /// <summary>

        /// Переключает на форму необходимого типа.

        /// </summary>

        /// <param name="form">Необходимый тип формы.</param>

        public void SwitchToForm(FormType form)

        {

            if (form == FormType.Animated)

            {

                if (CurrentForm != null)

                {

                    CurrentForm.Dispose();

                }

                CurrentForm = new AnimatedForm();

                CurrentForm.Show();

                return;

            }

        }

        /// <summary>

        /// Показ сплеш-скрина.

        /// </summary>

        private void SplashForm_Load(object sender, EventArgs e)

        {

            int steps = 3;

            Timer timer = new Timer();

            timer.Interval = 1000;

            timer.Tick += (o, ev) =>

            {

                if (steps == 1)

                {

                    this.FadeOut(TimeSpan.FromMilliseconds(700));

                }

                if (steps == 0)

                {

                    SwitchToForm(FormType.Animated);

                }

                if (steps < 0)

                {

                    timer.Stop();

                }

                steps--;

            };

            this.FadeIn(TimeSpan.FromSeconds(1));

            timer.Start();

        }

        /// <summary>

        /// Завершение работы программы.

        /// </summary>

        public void Shutdown()

        {

            Application.Exit();

        }

    }

}