ساخت یک کنترل در زمان اجرا
گاهی از اوقات در برنامه احتیاج هست که یک کنترل ( برای مثال یک Button یا یک Image ) را در هنگام اجرا بوجود آوربد . این کار در vb6 با استفاده از توابع API صورت می گرفت ولی در VB.NET این کار را به راحتی آب خوردن می توان درون برنامه انجام داد.
در .NET کافیست که یه نمونه از کنترل مورد نظر را در حافظه تعریف کنید و بعد از تنطیم خصوصیات با استفاده از متد Controls.Add() آن را روی فرم ظاهر کنید.
برای مثال یک نمونه از Button اینگونه ساخته می شود:
|
Dim btn As New Button() ‘Declare a New Instance of an Button |
تا اینجا دکمه ساخته شده و روی فرم قرار گرفته است ، ولی چگونه می توان برای رویدادهای این دکمه نیز برنامه نوشت؟
برای این منظور ابتدا باید یک روال برای رویداد مورد نظر و با همان پارامترهایی که برای یک دکمه معمولی بکار می رود نوشت ، برای مثال رویداد کلیک یک دکمه :
|
Sub onclick(ByVal sender As Object, ByVal e As EventArgs) |
و سپس این رویداد را به روال مورد نظر نسبت می دهیم به صورت زیر :
AddHandler رویداد مربوط به کنترل, AddressOf نام روال نوشته شده برای رویداد
برای مثال:
|
AddHandler btn.Click, AddressOf onclick ‘Set the Control Event With Its Sub |
با استفاده از دستور RemoveHandler می توان ارتباط میان رویداد و کنترل را از میان برداشت. برای مثال:
|
RemoveHandler btn.Click, AddressOf onclick |
با دستور Me.Controls.Remove() نیز می توانید یک کنترل را در زمان اجرا از فرم حذف کنید.
در مثال زیر ابتدا دکمه ای را در حافظه تعریف کرده و سپس به کنترل های روی فرم اضافه می کند ، با یک روال نیز در رویداد کلیک می گوئیم که کادر پیام با مضمون کلیک شدن روی دکمه ظاهر گردد و در پایان نیز دکمه مورد نظر را حذف می کنیم:
|
Dim btn As New Button() Overloads Sub onclick(ByVal sender As Object, ByVal e As EventArgs) Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) ‘Add the Control to Form ‘Button1 Created in Design View |
منبع : dotnetexperts
مطالب مرتبط با این نوشته
- مدلی برای شبیهسازی پردازشهای توزیعشده و موازی جهت دستیابی به توان پردازشی نامحدود
- پیادهسازی امضای دیجیتال با استفاده از فناوری یو.اس.بی.
- ۷ دلیل برای اینکه استفاده از PHP بهتر از ASP می باشد
- PHP و مقایسه آن با Perl CGIی
- بررسی نحوه ذخیره سازی Resource ها در اسمبلی های .NET
- استفاده از اشاره گر ها در #C
- ۱۱ سرویس و سایت جدید ( قسمت دوم )
- ۱۱ سرویس و سایت جدید ( قسمت اول )
- بررسی لپ تاپ جدید HP dv5t
- Chrome ، مرورگر قدرتمند گوگل








0 دیدگاهها
اولین نفر باشید که دیدگاهش را ارسال میکند.