PDA

View Full Version : فراخوانی یک شی با شی دیگر



Morteza-76
جمعه 09 اسفند 1392, 17:43 عصر
سلام میخواستم ببینم میشه کاری کرد که مثلا یه باتون داشته باشیم و یکی از کلید های منو بار رو بشه باهاش فعال کرد یعنی وقتی روی یک باتون زدیم کدی باشه کهرویداد کلیک یک کلید منو بار رو فعال کنه (فراخوانی کنه) لطفا کمکم کنید

Alirezanet
شنبه 10 اسفند 1392, 16:18 عصر
کافیه شما به Event مربوط به منوتون Handel رویداد باتن مورد نظر رو ضافه کنید تا با کلیک به روی هرکدام از اونها کدتون اجرا بشه ... به طور مثال :

Public Sub MYMethod() Handel Button1.Click , MenuItem1.Click
'عملیات مورد نظر...
End Sub

Morteza-76
شنبه 10 اسفند 1392, 16:43 عصر
اگر بخواییم تویی Handel یک شی دیگر رو معرفی کنیم که توی یک فرم دیگه هست چیکار کنیم ؟

Alirezanet
شنبه 10 اسفند 1392, 16:51 عصر
شما اتصال Handel هارو به دوروش در Vb.net متونید انجام بدین ...
1. مانند نمونه قبل و استفاده از Handel
2. استفاده از AddHandler و اتصال Handel به صورت Dynamic

برای این کار از طریق روش 1 :
Public Sub MyMethod() Handel frm2.Button1.Click

و نمونه انجام این کار از طریق روش دوم :

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim f As New frm2
AddHandler f.Button1.Click, AddressOf MyMethod
End Sub


Sub MyMethod()
' My Method Body ...
End Sub


موفق یاشید

Morteza-76
شنبه 10 اسفند 1392, 18:40 عصر
این کاری که گفتید رو انجام دادم نشد یا شایدم بد فهمیدم ولی بزارید راحتر بگم فرض کنید من یک فرم 1 دارم با یک باتون و یک فرم 2 هم دارم با یک باتون که این فرم2 یک باتون داره که یک پیام نشان میده حالا چه کدی واسه رویداد باتون اول بنویسیم که به رویداد باتون دوممون که در فرم 2 هست نسبت داده شه یا دستورات باتون دوممون با باتون اولی خونده بشه ؟

Alirezanet
شنبه 10 اسفند 1392, 22:25 عصر
شما اول باید یک آبجکت از فرم دومتون بگیرید :
Dim f As New Form2
حالا میتونید به تمامی اجزای این فرم دسترسی داشته باشید ...
اگر صرفا میخواید کد مورد نظر در فرم دوم که در باتن قرار داره اجرا کنید میتونید بنویسید :

Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim f As New Form2
f.Button1.PerformClick()
End Sub
End Class

ولی اگر احتیاج دارید Handel مجزایی به باتن فرم 1 اضافه کنید که در صورت اجرا شدن کدهای باتن در فرم 2 اجرا بشه باید بنویسید :

Public Class Form1

Private WithEvents f As New Form2
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
AddHandler f.Button1.Click, AddressOf Button1_Click
End Sub
Private Sub Button1_Click() Handles Button1.Click
' با فراخوانی این رویداد باتن فرم 2 هم اجرا میشود
End Sub


End Class

sagggad
یک شنبه 11 اسفند 1392, 13:23 عصر
سلام
http://mtpars.ir/showthread.php?3570-%D9%81%D8%B1%D8%A7%D8%AE%D9%88%D8%A7%D9%86%DB%8C-%DB%8C%DA%A9-%D8%B4%DB%8C-%D8%A8%D8%A7-%D8%B4%DB%8C-%D8%AF%DB%8C%DA%AF%D8%B1&p=10702#post10702