PDA

View Full Version : فرا خوانی تابعی که نام آن در متغیری از نوع string وجود دارد؟؟؟



m.abooei
سه شنبه 13 مرداد 1388, 20:13 عصر
با سلام

من یه کامپوننت ایجاد کرده ام که در مواقی که فوکاس روی آن است و کلید Enter زده می شود باید متدی فرا خوانی شود(در صورت لزوم اجرا نام متد به عنوان یک خاصیت ست می شود) که نام آن متد در متغیری از نوع String ذخیره می شود:
1- چطوری آن متد را فرا خوانی کنم؟
2- راهکار بهتر برای اجرای متدی که نام آن به عنوان ورودی دریافت می شود چطوری می باشد؟

با تشکر خواهشا سریع، خیلی حساس هست!!!!!!!!!!!

Rejnev
سه شنبه 13 مرداد 1388, 23:21 عصر
سلام
باید تک تک حالات string ورودی رو بررسی کنید و برای هر کدوم تصمیم بگیرید

m.abooei
چهارشنبه 14 مرداد 1388, 19:44 عصر
سلام
باید تک تک حالات string ورودی رو بررسی کنید و برای هر کدوم تصمیم بگیرید

ضمن تشکر از شما

ولی با توجه به اینکه این کامپوننت در هر جایی قابل استفاده است عملا نمی توان این کار را انجام داد و این کار برای جاهایی کاربرد دارد که تعداد توابع محدود باشد.

با این تفاصیل من چطوری می توانم کدی که به صورت رشته در متغیری از نوع string ذخیره شده است را اجرا کنم؟

سپاسگزارم!!!؟

Rejnev
چهارشنبه 14 مرداد 1388, 19:55 عصر
کار شما چیزی شبیه ساخت یک زبان برنامه نویسیه که باید یک کامپایلر براش بسازید!!!

BehzadBar
پنج شنبه 15 مرداد 1388, 11:54 صبح
سلام دوست عزیز من فکر میکنم بهتر باشه که از Delegate استفاده کنی و Address Of نام متدت را بدی

علیرضا مداح
پنج شنبه 15 مرداد 1388, 14:16 عصر
سلام دوست عزیز،
شما باید برروی Delegate ها مطالعه نمایید:
یک مثال ساده:


Imports System.ComponentModel
Public Class MyTextBox
Inherits System.Windows.Forms.TextBox
Private _onEnterActionMethod As Action
<Browsable(False)> _
Public Property OnEnterActionMethod() As Action
Get
Return _onEnterActionMethod
End Get
Set(ByVal value As Action)
_onEnterActionMethod = value
End Set
End Property
Private Sub MyTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If (e.KeyChar = ChrW(Keys.Enter)) Then
OnEnterActionMethod.Invoke()
End If
End Sub
End Class

طریقه ی استفاده:


Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MyTextBox1.OnEnterActionMethod = AddressOf SayHello
End Sub
Sub SayHello()
MessageBox.Show("Enter Key Pressed!")
End Sub
End Class

،/

m.abooei
یک شنبه 18 مرداد 1388, 23:27 عصر
سلام

می خواستم ببینم یه آموزش کامل از Delegate ها دارید واسم بگذارید یا سایت یا منبعی را معرفی کنید