PDA

View Full Version : افزودن event یا property به یک object



masoudmok
دوشنبه 16 خرداد 1390, 16:42 عصر
سلام
توی یکی از تاپیک های اخیر دیدم دوستی DLL ای گذاشته بود از یه textBox خارق العاده :تشویق:
میخوام بدونم این دوستمون چطور property هایی مثل typeNumericOnly رو واسش نوشتن . مثلا با true بودن این property فقط توی TextBox میشه عدد وارد کرد .
ممنون

amireto
دوشنبه 16 خرداد 1390, 18:44 عصر
دوست عزيز
يك كلاس درست كن كه از كنترل textbox ارث ببره
مي توني خواصيت هايي به اون اضافه كني



bool typeNumericOnly = false;

public bool TypeNumericOnly
{
get
{
return typeNumericOnly ;
}
set
{
typeNumericOnly = value;
}
}

سپس خواصيت Text اون رو override كن و در بخش set كنترل هاي لازم رو انجام بده
مثل



if (typeNumericOnly )
{
if (value != "0" && value != "")
{
decimal d;
decimal.TryParse(value, out d);
value = d.ToString();
))

}
}

Directx
دوشنبه 16 خرداد 1390, 19:09 عصر
اینم اضافه بکنم که می شه از snipet های تعریف شده هم برای property تعریف کردن برای کلاس استفاده کنی مثلا نوشتن prop و زدن کلید tab برات یه پراپرتی ساده تعریف می که یا مثلا با تایپ propdp می تونی یه depedency property با زدن کلید tab تعریف کنی

masoudmok
دوشنبه 16 خرداد 1390, 20:21 عصر
حالا کلاسو درست کردم ...
هر textbox ی که میذارم روی فرم باید از کلاسی که خودش از textbox ارث میبره ارث ببره ؟؟؟ :متعجب:

amireto
سه شنبه 17 خرداد 1390, 15:25 عصر
نيازي به ارث بري تك تك textbox هات نيست
اگر كلاستو درست كرده باشي كنترلي در toolbar با همان نام كلاست اضافه شده حال بايد به جاي textbox ي كه ميخواي تو برنامت استفاده كني از اين كنترل استفاده كن (هرجا چنين textbox ي ميخواي اين كنترل رو قرار بده ) الان ديگر يك كنترل جديد داري كه اون حودش از كنترل ديگري ارث ميبره اين يكي از مهمترين خواص شي گرايي است .

masoudmok
سه شنبه 17 خرداد 1390, 19:46 عصر
یه سمپل لطفا :گریه:

amireto
سه شنبه 17 خرداد 1390, 21:00 عصر
دوست عزيز خسته نباشي
مشكل از من بود كه يه رويداد مهم يادم رفت



protected override void OnKeyPress(KeyPressEventArgs e)
{
if (typeNumericOnly)
{
e.Handled = (char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar)) ? false : true;
}
base.OnKeyPress(e);

}


اينم يك مثال كامل اميدوارم كه به دردت بخوره
70852