79 lines
1.4 KiB
C#
79 lines
1.4 KiB
C#
|
using System.Text.RegularExpressions;
|
|||
|
|
|||
|
namespace WinFormsLibrary
|
|||
|
{
|
|||
|
public partial class EmailTextBox : UserControl
|
|||
|
{
|
|||
|
public EmailTextBox()
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
}
|
|||
|
private string _pattern;
|
|||
|
private string example = "hello@mail.ru";
|
|||
|
private EventHandler _onValueChanged;
|
|||
|
|
|||
|
public string Pattern
|
|||
|
{
|
|||
|
get { return _pattern; }
|
|||
|
set { _pattern = value; }
|
|||
|
}
|
|||
|
public string Error
|
|||
|
{
|
|||
|
get; private set;
|
|||
|
}
|
|||
|
public void setExample(string str)
|
|||
|
{
|
|||
|
Regex rg = new Regex(Pattern);
|
|||
|
bool address = rg.IsMatch(str);
|
|||
|
if (address)
|
|||
|
{
|
|||
|
example = str;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public string TextBoxValue
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
Regex regex = new Regex(Pattern);
|
|||
|
if (regex.IsMatch(textBoxEmail.Text))
|
|||
|
{
|
|||
|
return textBoxEmail.Text;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Error = "Некорректный ввод";
|
|||
|
return null;
|
|||
|
}
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
Regex regex = new Regex(Pattern);
|
|||
|
if (regex.IsMatch(value))
|
|||
|
{
|
|||
|
textBoxEmail.Text = value;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Error = "Некорректный ввод";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
private void textBoxEmail_MouseEnter(object sender, EventArgs e)
|
|||
|
{
|
|||
|
toolTipEmail.Show(example, textBoxEmail, 30, -20);
|
|||
|
}
|
|||
|
|
|||
|
public event EventHandler ValueChanged
|
|||
|
{
|
|||
|
add { _onValueChanged += value; }
|
|||
|
remove { _onValueChanged -= value; }
|
|||
|
}
|
|||
|
|
|||
|
private void textBoxEmail_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
_onValueChanged?.Invoke(sender, e);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|