PDA

View Full Version : سوال: ساختن یک UserControl



ali_khodayar
جمعه 04 مرداد 1392, 11:56 صبح
سلام به دوستان. میخوام یه UserControl بسازم که یه تکست باکس باشه فقط عدد بگیره . این کار رو توی برنامه میتونم انجام بدم اما برای ساخت UserControl نمیتونم.

توی برنامه من از keyChar استفاده میکنم که اونجا بجاش KeyCode داره.
مرسی

ali_khodayar
جمعه 04 مرداد 1392, 16:18 عصر
کسی نیست کمک کنه ؟؟؟:متفکر:

hojjatshariffam
جمعه 04 مرداد 1392, 16:39 عصر
خب باید یه یوزر گنترل بسازی و به جای اینکه از یوزر کنترل ارث ببره ، از باتن ارث ببر
بعد تو رویداد KeyPress کدای مورد نظرتو بنویس

hojjatshariffam
جمعه 04 مرداد 1392, 16:43 عصر
البته تو پست بالا به جای تکست باکس نوشتم باتن (اشتباه نحوی بود)
اینم کد

public partial class UserControl1 : TextBox
{
public UserControl1()
{
InitializeComponent();
}

private void UserControl1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar))
e.Handled = true;
}
}

hojjatshariffam
جمعه 04 مرداد 1392, 16:49 عصر
حالا بعد از یک بار کامپایل این یوزر کنترلت میا تولیست tools هات و می تونی بکشی و بندازی تو فرمت و بدون اینکه نگران حروف باشی اطش استفاده کن

ali_khodayar
جمعه 04 مرداد 1392, 20:57 عصر
بخشید یکم برای من گنگه. خوب متوجه نشدم . چرا به ارث بره؟؟

hojjatshariffam
جمعه 04 مرداد 1392, 22:45 عصر
سلام به دوستان. میخوام یه UserControl بسازم که یه تکست باکس باشه فقط عدد بگیره . این کار رو توی برنامه میتونم انجام بدم اما برای ساخت UserControl نمیتونم.

توی برنامه من از keyChar استفاده میکنم که اونجا بجاش KeyCode داره.
مرسی


بخشید یکم برای من گنگه. خوب متوجه نشدم . چرا به ارث بره؟؟
وقتی می گی یک یوزر کنترل می خوام بسازم که یه تکست باکس باشه پس بهرته به جای اینکه یه یوزر کنترل بسازی یه کلاس بسازی که از تکست باکس ارث ببره ، یعنی یه تکست باکس شخصی سازی شده
یوزرکنترل برای مواقعه که توش از چندین کنترل استفاده بشه و یا اینکه یه چیزی خودت از نو درست کنی نه چیزی که وجود داره ، وقتی شما می خواین فقط یک تکست باکس باشه پس باید یک تکست باکس بسازید (یعنی از یه تکست باکس ارث ببره) ، مگر اینکه بخواهی یه تکست باکس از صفر بسازی
نگران هیچ چیشم نباشید همه چیش همون تکست باکسه بجز اون چیزایی که تو خودت تغیرشون میدی ، (در اینجا فقط رویداد کی پرس که اونم می تونی با base حلش کنید)

ali_khodayar
جمعه 04 مرداد 1392, 23:12 عصر
مرسی توضیح شما خیلی خوب بود.

ali_khodayar
جمعه 04 مرداد 1392, 23:34 عصر
جواب گرفتم . فقط میخواستم بدونم e.handled چیکار میکنه؟ کارش چیه؟

hojjatshariffam
شنبه 05 مرداد 1392, 02:22 صبح
جواب گرفتم . فقط میخواستم بدونم e.handled چیکار میکنه؟ کارش چیه؟
شی e که موقع رخ دادن رویداد keypress پاس میشه ، یک instance از کلاس KeyPressEventArgs هستش که یک پراپرتی با عنوان handled دارد که در اختیر کاربر برنامه نویس گزاشته شده است که عمل کی پرس رو هندل کنه ، اگه کاربر اون رو true کنه ، کلیه عملیات اعمالی روی تکست باکس که از طریق فشار کلید قرار بود انجام شود لغو خواهد شد.

esafb52
شنبه 05 مرداد 1392, 04:35 صبح
البته میشه اینجوری هم نوشت (تو همین یوزرکنترله)که اگه تکسش صفر وارد شد برنامه بهت خطا نده و مقدار صفر برگردونه
public double digit
{
get
{
double a = 0;
double.TryParse(Text, out a);
return a;
}
set
{
Text = value.ToString();
}
}