PDA

View Full Version : سوال: ساخت پراپرتی نوع تکست باکس



mz6488
چهارشنبه 29 خرداد 1392, 23:07 عصر
سلام.میخوام یک تکست باکس سفارشی درست کنم به طوری که اگه تو قسمت دیزاین پراپرتی گزینه integer رو انتخاب کنیم تبدیل بشه به تکست باکس عددی اگه decimal رو انتخاب کنبم بشه اعشاری.کد ایونت هاش رو نوشتم فقط نمیدونم چجوری از get و set برای مشخص کردن نوع تکست باکس استفاده کنم؟؟؟

Mahmoud.Afrad
چهارشنبه 29 خرداد 1392, 23:58 عصر
یک نوع شمارشی تعریف کن و یک پراپرتی از این نوع شمارشی ایجاد کنید. در رویدادها هم با if و یا سوئیچ میتونید تصمیم بگیرید.
مثلا:

class CustomeTextBox : TextBox
{
public enum CustomeType { None, Integer, Decimal };

private CustomeType numeric;
public CustomeType Numeric
{
get
{
return numeric;
}
set
{
numeric = value;
}
}

protected override void OnTextChanged(EventArgs e)
{
base.OnTextChanged(e);

if (numeric == CustomeType.None)
{
return;
}
else if (numeric == CustomeType.Integer)
{
try
{
this.Text = int.Parse(this.Text).ToString();
}
catch (Exception ex)
{
string str=null;
foreach (char ch in this.Text)
{
if (char.IsDigit(ch))
{
str += ch;
}
}
this.Text = str;
}
}
else if (numeric == CustomeType.Decimal)
{
// ...
}

this.SelectionStart = this.Text.Length;
}
}