close

Вход

Забыли?

вход по аккаунту

?

Текст программы

код для вставкиСкачать
 Министерство образования и науки Российской Федерации
федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Ульяновский Государственный Технический Университет
ПРОИЗВОДНЫЙ ЭЛЕМЕНТ УПРАВЛЕНИЯ EXTENDEDMASKEDTEXTBOX
А.В.00010-04 ТП 01
Текст программы
Листов 8
СОДЕРЖАНИЕ
Содержание2
1. Текст программы3
1.1. Свойства и переменные3
1.2. События4
1.3. Методы6
1.4. Собственные классы8
1. ТЕКСТ ПРОГРАММЫ 1.1. Свойства и переменные
#region Приватные переменные
private string FileMaskType = ""; //маска из файла
private Masks currentStandartMask;
private Masks valueMask;
private int currentMask = 1;
private string strComparing = "";
private bool switchComparing = true;
private bool checking = false;
private bool flag = true;
#endregion
#region Свойства
[Description("Элемент сравнения")]
[CategoryAttribute("Мои свойства")]
[DefaultValue("")]
public string StrComparing
{
get { return strComparing; }
set { strComparing = value; }
}
[Description("Вкл/Выкл проверки на корректность маски")]
[CategoryAttribute("Мои свойства")]
[DefaultValue(true)]
public bool SwitchComparing
{
get {
return switchComparing; }
set { switchComparing = value; }
}
[Description("Путь к файлу, где находится пример маски")]
[CategoryAttribute("Мои свойства")]
public string PathToMask
{
get
{
return FileMaskType;
}
set
{
FileMaskType = value;
}
}
[Description("Смена маски")]
[CategoryAttribute("Мои свойства")]
public Masks StandartMaskCollection
{
get
{
return currentStandartMask;
}
set
{
currentStandartMask = value;
if (flag)
{ valueMask = value;
flag = false;
}
OnMaskSmena(new EventArgs());
}
}
#endregion
1.2. События
//событие проверки на корректность и соответствие
public delegate void TextErrorEventHandler(object sender, MyEventArgs e);
public event TextErrorEventHandler TextError;
protected virtual void OnTextError(MyEventArgs e) {
if (TextError != null)
TextError(this, e);
}
//событие смены маски
public event MaskSmenaEventHandler MaskSmena;
public delegate void MaskSmenaEventHandler(object sender, EventArgs e);
protected virtual void OnMaskSmena(EventArgs e)
{
if (StandartMaskCollection == Masks.Date)
{
strComparing = "";
Mask = "00/00/0000";
Text = "";
if (switchComparing)
{
ValidatingType = typeof(System.DateTime);
}
else
{
ValidatingType = typeof(System.String);
}
}
if (StandartMaskCollection == Masks.MaskWithFile)
{
strComparing = "";
GetMaskFromFile(PathToMask);
Text = "";
ValidatingType = typeof(System.String);
}
if (StandartMaskCollection == Masks.Pin)
{
strComparing = "";
Mask = "";
Text = "";
ValidatingType = typeof(System.Int32);
}
if (StandartMaskCollection == Masks.Telephone)
{
strComparing = "";
Mask = "";
Text = "";
ValidatingType = typeof(System.String);
}
if (StandartMaskCollection == Masks.Time)
{
strComparing = "";
Mask = "90:00";
Text = "";
if (switchComparing)
{
ValidatingType = typeof(System.DateTime);
}
else
{
ValidatingType = typeof(System.String);
}
}
if (MaskSmena != null) MaskSmena(this, e);
1.3. Методы
#region Методы
//маска из файла
private void GetMaskFromFile(string s)
{
System.IO.FileStream path = new System.IO.FileStream(@s, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.StreamReader file = new System.IO.StreamReader(path);
using (file)
{
Mask = file.ReadToEnd();
}
file.Close();
}
//проверка на соответсвие
private bool Comparing()
{
return Text == StrComparing;
}
#endregion
#region Переопределенные методы
void ExtendedMaskedTextBox_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
bool error = !e.IsValidInput;
int num;
if (switchComparing)
{
//проверка телефона на корректность
if (StandartMaskCollection == Masks.Telephone)
{
string[] parts = Text.Split('-');
try
{
for (int i = 0; i < parts.Length; i++)
{
if (parts[i].Length > 2)
{
error = true;
break;
}
if (parts[i].Length > 0)
num = Convert.ToInt32(parts[i]);
}
}
catch
{
error = true;
}
if (parts.Length != 3)
error = true;
}
//проверка пин кода на корректность
if (StandartMaskCollection == Masks.Pin)
{
try
{
if (Text.Length == 4)
{
num = Convert.ToInt32(Text);
}
else
{
error = true;
}
}
catch
{
error = true;
}
}
if (error == true)
{
Focus();
checking = error;
}
else
{
checking = false;
}
OnTextError(new MyEventArgs(error, Comparing()));
}
}
protected override void OnKeyDown(KeyEventArgs e)
{
//вызов маски из файла
if ((e.Control) && (e.Alt))
{
Text = "";
GetMaskFromFile(PathToMask);
}
//переключение между масками
if (e.KeyCode == Keys.Enter)
{
if (currentMask < 5)
{
if (ValidateText() != null && !checking) {
if (Convert.ToInt16(valueMask) == currentMask) {currentMask++;} StandartMaskCollection = (Masks)currentMask;
currentMask++;
}
}
}
base.OnKeyDown(e);
}
#endregion
1.4. Собственные классы
public class MyEventArgs : EventArgs
{
public readonly bool IsError; //только для чтения
public readonly bool IsCompared; // только для чтения
public MyEventArgs(bool error, bool compare)
{
IsError = error;
IsCompared = compare;
}
}
8
А.В.00010-04 ТП 01
2012
Документ
Категория
Разное
Просмотров
8
Размер файла
46 Кб
Теги
программа, текст
1/--страниц
Пожаловаться на содержимое документа