PDA

View Full Version : سوال: طراحی User Control با ترکیب TextBox و Label



jaza_sa
دوشنبه 28 مرداد 1387, 00:32 صبح
سلام
من میخوام یه User Control طراحی کنم که شامل یک TextBox و یک Label هست
همونطور که در فایل ضمیه میبینید ، این کنترل ها (TextBox و Label) به هم چسبیده اند و هنگام استفاده از اون دیگه نیاز نیست تا طراح مرتبا TextBox ها رو با Label ها Arrange کنه و به این ترتیب در زمان طراحی صرفه جویی میشه
اینکار بظاهر کار خیلی خوبه ولی هنگام پیاده سازی به یکسری مشکلات برخوردم ،
از جمله مشکلات من اینکه باید دوباره تمام خصوصیات ، رویدادها و متدهای مربوط به TextBox و Label رو دوباره بنویسم و خوب اینکار خیلی زمان میبره و به نظرم کار صحیح و اصولی نیست. (فایل ضمیمه)
حالا میخواستم بدونم آیا روشی هست که نخوایم تمام خصوصیات این دو کنترل رو دوباره بنویسیم یا حتی override کنیم ؟
اگر فقط یه TextBox بود کار خیلی راحت میشه ، فقط کافی بود تا این کلاس از کلاس TextBox به ارث برسه ولی حالا که این کنترل ها دوتا شدن باید چیکار کرد؟

ممنون

pesare_ariyayi
دوشنبه 28 مرداد 1387, 01:58 صبح
خوب اینطور که تو عکسها می بینم برای event, textbox نوشتی. دیگه چرا باید دوباره ست کنی؟!!! یه خورده بیشتر توضیح بده. مثلاً کدوم خصوصیتها رو باید دوباره Set کنی؟

jaza_sa
دوشنبه 28 مرداد 1387, 09:07 صبح
خوب اینطور که تو عکسها می بینم برای event, textbox نوشتی. دیگه چرا باید دوباره ست کنی؟!!! یه خورده بیشتر توضیح بده. مثلاً کدوم خصوصیتها رو باید دوباره Set کنی؟

برای طراحی یک User Control باید property , method , event هایی که خودمون میخوایم رو به کنترل مورد نظر اضافه کنیم
ولی در این مثال چطور باید این ویژگی ها رو اضافه کنیم به نحوی که کنترل نهایی همه ویژگی های TextBox , Label رو داشته باشه و ویژگی هاییکه ما هم میخوایم به اون اضافه شده باشه ؟!!!

jaza_sa
دوشنبه 28 مرداد 1387, 14:53 عصر
دوستان ، کسی نمیدونه راه صحیح چیه؟

mehdi.mousavi
دوشنبه 28 مرداد 1387, 15:33 عصر
دوستان ، کسی نمیدونه راه صحیح چیه؟

سلام.
کنترلی که شما درست کردین یه Composite Control هستش. در Composite Control ها چنین امکانی وجود نداره، که شما بتونید چند کنترل رو با هم ترکیب کنید، ضمن اینکه فرض کنید جای TextBox مجبور بشید تو یه صفحه ای از ComboBox استفاده کنید. اونوقت چیکار میخواهید کنید؟ یه Composite Control هم برای اون بسازید؟

کلا چنین کاری، صحیح نیست. اگر تعداد TextBox هاتون زیاده، احتمالا باید به فکر این باشید که از GridView یا یه Custom Control دیگه استفاده کنید. منظورم اینه که شاید بهتره باشه و بشه تا طور دیگه ای UI رو طراحی کرد...

اما اگر اصرار در انجام اینکار دارید، استفاده از Extender ها (احتمالا) جواب سوال شماست.