PDA

View Full Version : آموزش: UserControl



nasime_shomal
یک شنبه 26 مهر 1388, 16:40 عصر
سلام دوستان مدتی بود که می خواستم بدونم چه جوری میشه یه یوزر کنترل ساخت که بتونه با بقیه ی کنترل ها توی فرم رابطه برقرار کنه منتها کسی جوابی به من نداد و من الان این موضوع رو یاد گرفتم. برای همین نیاز دیدم که آموزش اون رو برای دوستانم بزارم و توی هر دفعه مقداری از اون رو توی همین قسمت براتون بزارم.
اول میرم سر این قضیه که اصلا یوزر کنترل چیه؟ شما تا الان با کنترلهای زیادی مثل textbox,label ,... کار کردین یوزر کنترل هم میتونه متشکل از یک یا چند کنترل باشه. حالا چرا از یک یوزر کنترل استفاده میکنیم؟ ببینید شما معمولا از یه سر کنترل ها زیاد استفاده میکنید. مثلا شما برنامه هایی برای یه شرکت می نویسید پس همیشه مجبورید که یه یه قسمت برای ورود افراد توی برنامه قرار بدید(یوزر،پس). حالا فرض کنید از این موضوع قرار چند بار استفاده کنید اونوقت مجبورید چند بار ایت کار رو تکرار کنید. اما به وسیله یوزر کنترلها یک با این کار رو انجام میدهید بعد از اون دیگه هر دفعه مثل اضافه کردن کنترل اون رو به فرم دراگ میکنید به همین سادگی تازه شما میتونید کنترل ها رو به صورت dll در بیارید و به بقیه بدید.
درست کردن یوزر کنترل هم خیلی سادست که این قسمت رو انشا الله تا فردا توی همینجا براتون آموزش میدم.:لبخند:
کوچیک همه دوستان
نسیم شمال

اَرژنگ
یک شنبه 26 مهر 1388, 18:24 عصر
می خواستم بدونم چه جوری میشه یه یوزر کنترل ساخت که بتونه با بقیه ی کنترل ها توی فرم رابطه برقرار کنه منتها کسی جوابی به من نداد
لطفاً منظور از "ارتباط برقرار کردن با بقیه کنترلهایه در فرم" را بدانه توجه به یوزر کنترل و یا با یک مثال که چنین چیزی را انجام بده برسانید.
چونکه تا جایی که من میدانم کنترلی (یا هر شیئ) با کنترلهایه (اشیاء) دیگر عملی انجام نمیده که بشه بهش گفت رابطه برقرار میکنند.
دلیل اینکه قبلاً جواب نگرفتید این بود که سوالتان را درست توجیح نکردید که بشه فهمید چی میخواهید.

alireza_s_84
یک شنبه 26 مهر 1388, 19:20 عصر
سلام دوستان مدتی بود که می خواستم بدونم چه جوری میشه یه یوزر کنترل ساخت که بتونه با بقیه ی کنترل ها توی فرم رابطه برقرار کنه منتها کسی جوابی به من نداد

سلام دوست عزیز دلیلش اینه که شما باید سرچ میکردین شاید بیش از 5 جای این فروم من این مطلب رو فقط خودم توضیح دادم غیر از موارد دیگه ای که دوستان توضیح دادن.
http://barnamenevis.org/forum/showthread.php?t=183299
موفق باشید

nasime_shomal
یک شنبه 26 مهر 1388, 23:43 عصر
سلام دوست عزیز دلیلش اینه که شما باید سرچ میکردین شاید بیش از 5 جای این فروم من این مطلب رو فقط خودم توضیح دادم غیر از موارد دیگه ای که دوستان توضیح دادن.
http://barnamenevis.org/forum/showthread.php?t=183299
موفق باشید
دوست عزیز دستتون درد نکنه ولی ایکاش اینو همون روز برام مینوشتید به هر حال فروم برای پرسش و پاسخه وگرنه میرفتم توی گوگل سرچ میکردم اگه بازم جایی یه همچین مطلبی رو گذاشتین بگین چون دوست دارم بیشتر یاد بگیرم به هر حال من این آموزش رو کامل میکنم
دست همگی درد نکنه:تشویق:

Mohsen_Fotouhi
دوشنبه 27 مهر 1388, 00:50 صبح
سلام Nasime_Shomal

لطفا در مورده سوالتون یکم بیشتر توضیح بدید من خیلی کنجکاو شدم بدونم منظورتون از

ارتباط با بقیه کنترل ها چیه :متفکر:

با تشکر

nasime_shomal
دوشنبه 27 مهر 1388, 13:46 عصر
سلام Nasime_Shomal

لطفا در مورده سوالتون یکم بیشتر توضیح بدید من خیلی کنجکاو شدم بدونم منظورتون از

ارتباط با بقیه کنترل ها چیه :متفکر:

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

nasime_shomal
سه شنبه 28 مهر 1388, 10:27 صبح
سلام دوستان توی این قسمت میخوام براتون یکی از راه های ارتباط یوزر کنترل با بقیه کنترل ها یعنی خصوصیت رو توضیح بدم.مثلا شما میخواید یه یوزر کنترل درست کنید که بتونید تکست یکی از لیبل هاشو بعدا عوض کنید( لازم به ذکر که شما در حالت عادی نمیتونید این کار رو انجام بدید مگر اینکه برای اون لیبل یه خصوصیت قرار بدید چون بعد از اینکه یوزر کنترلتون رو کامپایل میکنید و بعد توی برنامه ازش استفاده میکنید فقط یه سری رویدادها و خصوصیات عمومی دارد که اونم مربوط به کل یوزر کنترله نه یکی از کنترلهاش). برای عوض کردن تکست لیبل در یوزر کنترل باید یه خصوصیت برای اون تعریف کنید مثل پاییین

public string text
{
get
{
return textbox1.text;
}
set
{
textbox1.text = value;
}
}

nasime_shomal
سه شنبه 28 مهر 1388, 10:56 صبح
راستی یادم رفت بگم اصلا چه جوری باید یه یوزر کنترل ساخت.
برای این کار ابتدا یه پروژه class library از قسمت new project درست میکنید و توی پنجره solution explorer فایل class1.cs را حذف میکنیم بعد سر اسم پروژه راست کلیک میکنیم و از منوی باز شده گزینه add>user control رو انتخاب میکنیم بام یوزر کنترل رو وارد منید حالا شما یه یوزر کنترل دارید که مثل فرم هست با این تفاوت که حاشیه ندارد و دکمه های close,min,max رو ندارد حالا شما میتونید مثل وقتی که فرم رو طراحی میکردید این کنترل رو هم طراحی کنید بعد از اتمام طراحی پروژه رو کامپایل کنید.حالا یوزر کنترلتون آمادست.
برای استفاده از اون یه پروژه ویندوزی باز کنید بعد در تولباکس راست کلیک کنید choose items رو انتخاب کنید توی کادر باز شده brows رو بزنید آدرس یوزر کنترلی رو که ساختید رو بدید (bin>debug) فایل dll موجود توی این پوشه یوزر کنترل شماست آن را انتخاب کنید و ok کنید حالا به تولباکستون یه کنترل اظافه شده است این همان یوزر کنترل هست. در ضمن شما میتوانید این فایل dll رو در اختیار دیگر دوستانتون قرار بدید تا اونا هم بتونند از اون استفاده کنند :لبخند: