Exemple #1
0
        public AddCustomer()
        {
            InitializeComponent();

            OpenCustomerInfoPanel();

            // Установка подсказок в текстовых полях.
            Functions.SetPlaceholderTextBox(NameTextBox, "Наименование организации");
            Functions.SetPlaceholderTextBox(ContractNumberTextBox, "Номер договора");
            Functions.SetPlaceholderTextBox(LocationNameTextBox, "Название локации");
            Functions.SetPlaceholderTextBox(RoomCountTextBox, "Количество комнат");
            Functions.SetPlaceholderTextBox(BedsCountTextBox, "Количество мест");
            Functions.SetPlaceholderTextBox(EmailNameTextBox0, "Имя заказчика");
            Functions.SetPlaceholderTextBox(EmailTextBox0, "Электронная почта заказчика");
            Functions.SetPlaceholderTextBox(SubDivisionNameTextBox, "Наименование организации");
            Functions.SetPlaceholderTextBox(SubDivisionEmailNameTextBox0, "Имя заказчика");
            Functions.SetPlaceholderTextBox(SubDivisionEmailTextBox0, "Электронная почта");

            // Установка подсказки для полей с датами.
            Functions.SetPlaceholderDateTimePicker(FromContractTimeDateTimePicker, "Введите дату");
            Functions.SetPlaceholderDateTimePicker(ToContractTimeDateTimePicker, "Введите дату");

            Functions.NewlineProcessing(RoomsDataGridView, new string[] { "1", "Номер комнаты", "Количество спальных мест", null });

            // Установка ограничений для текстовых полей.
            Functions.OnlyNumbersInTextBox(CardCountTextBox);
            Functions.OnlyNumbersInTextBox(RoomCountTextBox);
            Functions.OnlyNumbersInTextBox(BedsCountTextBox);

            // Установка подсказок обязательных полей.
            NameErrorProvider.SetError(NameTextBox, "* - обязательное поле");
            NameErrorProvider.SetIconPadding(NameTextBox, 10);
            ContractNumberErrorProvider.SetError(ContractNumberTextBox, "* - обязательное поле");
            ContractNumberErrorProvider.SetIconPadding(ContractNumberTextBox, 10);
            ToContractTimeErrorProvider.SetError(ToContractTimeDateTimePicker, "* - обязательное поле");
            ToContractTimeErrorProvider.SetIconPadding(ToContractTimeDateTimePicker, 10);
            FromContractTimeErrorProvider.SetError(FromContractTimeDateTimePicker, "* - обязательное поле");
            FromContractTimeErrorProvider.SetIconPadding(FromContractTimeDateTimePicker, 10);
            LocationNameErrorProvider.SetError(LocationNameTextBox, "* - обязательное поле");
            LocationNameErrorProvider.SetIconPadding(LocationNameTextBox, 10);
            RoomCountErrorProvider.SetError(RoomCountTextBox, "* - обязательное поле");
            RoomCountErrorProvider.SetIconPadding(RoomCountTextBox, 10);
            BedsCountErrorProvider.SetError(BedsCountTextBox, "* - обязательное поле");
            BedsCountErrorProvider.SetIconPadding(BedsCountTextBox, 10);
            EmailNamesErrorProvider.SetError(EmailNameTextBox0, "* - обязательное поле");
            EmailNamesErrorProvider.SetIconPadding(EmailNameTextBox0, 10);
            EmailsErrorProvider.SetError(EmailTextBox0, "* - обязательное поле");
            EmailsErrorProvider.SetIconPadding(EmailTextBox0, 10);
            SubDivisionNameErrorProvider.SetError(SubDivisionNameTextBox, "* - обязательное поле");
            SubDivisionNameErrorProvider.SetIconPadding(SubDivisionNameTextBox, 10);
            SubDivisionEmailNameErrorProvider.SetError(SubDivisionEmailNameTextBox0, "* - обязательное поле");
            SubDivisionEmailNameErrorProvider.SetIconPadding(SubDivisionEmailNameTextBox0, 10);
            SubDivisionEmailErrorProvider.SetError(SubDivisionEmailTextBox0, "* - обязательное поле");
            SubDivisionEmailErrorProvider.SetIconPadding(SubDivisionEmailTextBox0, 10);
        }
        /// <summary>
        /// Обработка окончания редактирования поля с эл.почтой.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void EmailTextBox_Leave(object sender, EventArgs e)
        {
            TextBox textBox = sender as TextBox;

            if (textBox.TextLength > 0 && textBox.Text != textBox.Tag.ToString() && RegexUtilities.IsValidEmail(textBox.Text.Trim()))
            {
                EmailsErrorProvider.Clear();
            }
            else if (textBox.TextLength > 0 && textBox.Text != textBox.Tag.ToString())
            {
                MessageBox.Show($"Электронная почта \"{textBox.Text}\" введена некорректно!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                EmailsErrorProvider.SetError(textBox, "* - обязательное поле");
                EmailsErrorProvider.SetIconPadding(textBox, 10);
                textBox.Focus();
            }
        }
        /// <summary>
        /// Добавить поля электронных почт.
        /// </summary>
        /// <param name="emailsPanel">Панель, на которой находятся поля электронной почты.</param>
        /// <param name="activateButton">Кнопка, которой активировали создание полей.</param>
        private void AddEmailsFields(Panel emailsPanel, LinkLabel activateButton)
        {
            TextBox lastEmailTextBox     = emailsPanel.Controls[emailsPanel.Controls.Count - 1] as TextBox;
            TextBox lastEmailNameTextBox = emailsPanel.Controls[emailsPanel.Controls.Count - 2] as TextBox;

            if (lastEmailNameTextBox.Text != lastEmailNameTextBox.Tag.ToString() && lastEmailTextBox.Text != lastEmailTextBox.Tag.ToString())
            {
                TextBox emailNameTextBox = new TextBox();
                emailNameTextBox.Size     = lastEmailNameTextBox.Size;
                emailNameTextBox.Margin   = lastEmailNameTextBox.Margin;
                emailNameTextBox.Location = new Point(0, lastEmailNameTextBox.Location.Y + lastEmailNameTextBox.Size.Height + lastEmailNameTextBox.Margin.Top);
                emailNameTextBox.Name     = $"EmailNameTextBox{EmailsCount}";
                emailsPanel.Controls.Add(emailNameTextBox);

                TextBox emailTextBox = new TextBox();
                emailTextBox.Size     = lastEmailTextBox.Size;
                emailTextBox.Margin   = lastEmailTextBox.Margin;
                emailTextBox.Location = new Point(lastEmailTextBox.Location.X, lastEmailTextBox.Location.Y + lastEmailTextBox.Size.Height + lastEmailTextBox.Margin.Top);
                emailTextBox.Name     = $"EmailTextBox{EmailsCount}";
                emailsPanel.Controls.Add(emailTextBox);

                Functions.SetPlaceholderTextBox(emailNameTextBox, lastEmailNameTextBox.Tag.ToString());
                Functions.SetPlaceholderTextBox(emailTextBox, lastEmailTextBox.Tag.ToString());

                EmailNamesErrorProvider.SetError(emailNameTextBox, "* - обязательное поле");
                EmailNamesErrorProvider.SetIconPadding(emailNameTextBox, 10);
                EmailsErrorProvider.SetError(emailTextBox, "* - обязательное поле");
                EmailsErrorProvider.SetIconPadding(emailTextBox, 10);

                emailNameTextBox.Leave += new EventHandler(EmailNameTextBox_Leave);
                emailTextBox.Leave     += new EventHandler(EmailTextBox_Leave);

                activateButton.Location = new Point(activateButton.Location.X, activateButton.Location.Y + lastEmailNameTextBox.Margin.Top + lastEmailNameTextBox.Size.Height);

                EmailsCount++;
            }
        }