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++; } }