PDA

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



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

Mahmoud.Afrad
پنج شنبه 30 خرداد 1392, 00: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;
}
}