نمایش نتایج 1 تا 4 از 4

نام تاپیک: ساخت یک کنترل در زمان اجرا

  1. #1

    Post ساخت یک کنترل در زمان اجرا


    گاهی از اوقات در برنامه احتیاج هست که یک کنترل ( برای مثال یک Button یا یک Image ) را در هنگام اجرا بوجود آوربد . این کار در vb6 با استفاده از توابع API صورت می گرفت ولی در VB.NET این کار را به راحتی آب خوردن می توان درون برنامه انجام داد.
    در .NET کافیست که یه نمونه از کنترل مورد نظر را در حافظه تعریف کنید و بعد از تنطیم خصوصیات با استفاده از متد Controls.Add() آن را روی فرم ظاهر کنید.

    برای مثال یک نمونه از Button اینگونه ساخته می شود:

    Dim btn As New Button() ‘Declare a New Instance of an Button
    With btn ‘Set Control Properties
    .Text = “Created at Run time”
    .Width = 150
    .Height = 20
    .Location = New Point(100, 200)
    End With
    Me.Controls.Add(btn) ‘Add the Control to Form
    تا اینجا دکمه ساخته شده و روی فرم قرار گرفته است ، ولی چگونه می توان برای رویدادهای این دکمه نیز برنامه نوشت؟
    برای این منظور ابتدا باید یک روال برای رویداد مورد نظر و با همان پارامترهایی که برای یک دکمه معمولی بکار می رود نوشت ، برای مثال رویداد کلیک یک دکمه :


    Sub onclick(ByVal sender As Object, ByVal e As EventArgs)
    ‘Insert Event Code Here
    End Sub
    و سپس این رویداد را به روال مورد نظر نسبت می دهیم به صورت زیر :
    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)
    MsgBox(”You Click :” & CType(sender, Button).Text)
    End Sub


    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    Handles MyBase.Load
    With btn ‘Set Control Properties
    .Text = “Created at Run time”
    .Width = 170
    .Height = 20
    .Location = New Point(100, 200)
    End With

    ‘Set the Control Event With Its Sub

    AddHandler btn.Click, AddressOf onclick


    ‘Add the Control to Form
    Me.Controls.Add(btn)
    End Sub


    ‘Button1 Created in Design View
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Handles Button1.Click
    RemoveHandler btn.Click, AddressOf onclick
    Me.Controls.Remove(btn)
    End Sub
    منبع: dotnetexperts

  2. #2
    کاربر دائمی آواتار yekta64
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران زمین
    سن
    39
    پست
    562

    نقل قول: ساخت یک کنترل در زمان اجرا

    سلام دوست عزیز
    میشه توضیح بدید اگه بیش از 20دکمه در زمان اجرا ایجاد کنیم به طوری هر دکمه یه کار خاص رو انجام می ده چطور باید رویداد کلیک این 20 دکمه رو هندل کرد؟؟؟؟
    به عبارتی چطور رویداد کلیک این دکمه ها رو هندل کنیم به طوری که هر دکمه بتونه کار خودش رو انجام بده؟؟؟؟
    مرسی

  3. #3

    نقل قول: ساخت یک کنترل در زمان اجرا

    راستی تو وی بی 6 برای ایجاد کنترل اجباری به استفاده از توابع api نیست.
    می تونید یک کنترل رو بسازید و به اون index بدید
    حالا می تونید در محیط کد یک ایندکس جدید از اون رو تنظیم و اون رو show کنید.

  4. #4

    نقل قول: ساخت یک کنترل در زمان اجرا

    سلام

    میشه بگید چطوری یک دمکه روی صفحه داریم با خر بار فشار دادن اون یک شی جدید بسازه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •