using Components.Exceptions; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Forms; namespace Components { public partial class CustomTextBox : UserControl { public CustomTextBox() { InitializeComponent(); } private string _numberPattern; public string numberPattern { get { return _numberPattern; } set { _numberPattern = value; } } public string textBoxNumber { get { if (_numberPattern == null) { throw new CustomException("there is no pattern"); } Regex regex = new(_numberPattern); if (regex.IsMatch(textBox.Text)) { return textBox.Text; } else { throw new CustomException("there is wrong pattern"); } } set { Regex regex = new(_numberPattern); if (regex.IsMatch(value)) { textBox.Text = value; } else { textBox.Text = string.Empty; } } } private void showToolTip(object sender, EventArgs e) { ToolTip tt = new ToolTip(); tt.Show("+X XXX XXX XX XX" , textBox); } private EventHandler _onValueChangedEvent; public event EventHandler ValueChangedEvent { add { _onValueChangedEvent += value; } remove { _onValueChangedEvent -= value; } } private void CustomTextBox_TextChanged(object sender, EventArgs e) { _onValueChangedEvent?.Invoke(sender, e); } } }