PDA

نسخه کامل مشاهده نسخه کامل : چگونه كنترلهاي جديد بسازيم.



anvar.net
02-05-2007, 00:46
خيلي از مواقع پيش مياد كه نياز به كنترلهاي خاص پيدا ميكنيم و گاهي هم كارهاي جديدي از يك كنترل ميخواهيم كه ندارد. براي حل چنين مشكلاتي بهترين راه آموختن راه ساخت اين كنترلها است.
هدف از اين پست آشنا شدن دوستان با روند ساخت اين كنترلها است كه به مرور بحث را گسنرده تر و پيشرفته تر ميكنيم.
در VB.NET براي ساخت يك كنترل كاربر (User control) جديد، فرمان File|new|Project را انتخاب ميكنيم. در پنجره پروژه جديد از قسمت Templates آيتم Windows control library را انتخاب كرده و با انتخاب نام مناسبي OK ميكنيم.
فرمي كوچكي همانند فرمهاي معمول باز ميشود.اين فرم يك جانگهدار براي ساير كنترلهاي معمول ويندوز است.
هدف از اين قسمت فقط آشنايي با روش ساخت خصوصيت جديد (Property)، متد جديد و رويداد جديد است.
يك كنترل برچسب (Lable) بر روي فرم جديد قرار داده و تمام سطح فرم را با آن مي پوشانيم.
قسمت 1 : اضافه كردن خاصيت جديد
مي خواهيم خاصيتي به نام Fillcolor به كنترل جديد اضافه كنيم كه بتواند رنگ كنترل را ست كند(در واقع اين خاصيت را به خاصيت Backcolor برچسب نسبت ميدهيم).طراح كد را باز كرده(دبل كليك يا راست كليك و انتخاب view code )، براي اضافه كردن خاصيت جديد بايد از دستور Property استفاده كنيم. براي ذخيره مقدار خاصيت جديدمان از يك شيء Color بنام Fcolor استفاده ميكنيم و با متدهاي Get و Set بترتيب مقدار آنرا خوانده و يا مينويسم.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

anvar.net
03-05-2007, 00:17
اضافه كردن متد جديد
براي كنترل قسمت قبلمون ميخواهيم يك متدي اضافه كنيم كه بتوان متن كنترل را ست كرد. براي اين كه متد ما در خارج از كنترل نيز در دسترس باشد بايد آنرا بصورت Public تعريف كنيم.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اضافه كردن رويداد جديد
براي اضافه كردن رويداد جديد از دستور Event و متد RaiseEvent استفاده ميكنيم. مي خواهيم رويدادي بنويسيم كه هنگام تغيير متن برچسب وسط كنترل رخ بدهد(Textchange)



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
براي كامپايل كنترل فوق بصورت يك فايل DLL مجزا از فرمان Build|Build solution استفاده ميكنيم.
با اجراي اين فرمان يك فايل DLL در محل ذخيره پروژه در پوشه bin ساخته ميشود كه براي اضافه كردن آن به فرم از toolbox و add\remove items استفاده ميكنيم.
در روزهاي آينده بحث را تخصصي تر مطرح ميكنيم ........

_H2_
03-05-2007, 10:27
سلام
خوب است، اگر آموزش مقدمات VB.Net باشد ، دوستان میتوانند استفاده کنند، من هم به در حال تایپ و تکمیل یک بلوک کال آموزش VB.Net هستم ولی در زمان محدودیت دارم ولی اگر به حد کافی ای تایپ هایم به حد کافی ای برسد، آنها را در دسترس عموم قرار میدهم.

با اجازه کاربر anvar.net و برای تنها نبودن ایشان!
رویداد ها را بهتر است از نوع استاندارد EventHandler تعریف کنم (همان که یک Sender دارد و یک پارامتر e !!)
و برای راحتی کار میتوان به جای تایپ تمام آرگومانهاف کل یک Event را از نوع یک Delegate تعریف کرد! (فعلاَ فقط بدانید که Delegate های همان امضاهای دجیتال توابع هستند و تعداد و نوع هر پارامتر را معرفی میکنند.)
صرفاَ به دو کد زیر دقت کنید، هر دو کد عیناَ یک کار را انجام میدهند.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.