PDA

View Full Version : دسترسی به رویداد کلیک Button داخل Usercontrol



asghar2008
شنبه 16 دی 1391, 12:48 عصر
سلام

دوستان عکس زیر یک Usercontrol هست که طراحی کردم.


97885


چطور می توانم در برنامه خود به رخداد Click دکمه(Button) داخل Usercontrol دسترسی داشته باشم؟

میخوام کاربر خودش تعریف کنه ، که وقتی روی دکمه داخل Usercontrol کلیک کرد چه عمل اتفاق بیافته.

pooya1072
شنبه 16 دی 1391, 13:44 عصر
سلام
من برای اطمینان از اونچه می خوام بگم یه usercontrol مثل آنچه شما طراحی کردید ساختم.اگه منظورتون دقیقا اینه که توی پروژتون یه usercontrol رو add کردید به سادگی با دبل کلیک کردن روی باتون به رویدادهای اون دسترسی پیدا می کنید.مثل یک کنترل که روی فرم برنامه قرار دادید.فرقی نمی کنه. در صورتی که یه کنترل رو به صورت دینامیک به فرم اضافه کنید قضیه فرق میکنه.

SHD.NET
شنبه 16 دی 1391, 14:00 عصر
اگه منظورتون اینه که چجوری با کدنویسی روش کلیک کنید :
UserControl1.Button1.PerformClick()

:چشمک:\\\موفق باشید///:چشمک:

asghar2008
شنبه 16 دی 1391, 14:45 عصر
سلام
من برای اطمینان از اونچه می خوام بگم یه usercontrol مثل آنچه شما طراحی کردید ساختم.اگه منظورتون دقیقا اینه که توی پروژتون یه usercontrol رو add کردید به سادگی با دبل کلیک کردن روی باتون به رویدادهای اون دسترسی پیدا می کنید.مثل یک کنترل که روی فرم برنامه قرار دادید.فرقی نمی کنه. در صورتی که یه کنترل رو به صورت دینامیک به فرم اضافه کنید قضیه فرق میکنه.

سلام

به صورت داینامیک به فرم اضافه نکردم.ببینید موقع طراحی Usercontrol با استفاده از Property چند ویژگی مثل Text یا Color و... بهش تعریف میکنیم. حالا میخوام تو همونجا رویدادکلیک رو به دکمه داخل Usercontrol تعریف کنم.یعنی وقتی کاربر ازش استفاده میکنه بتونه به رویداد اون دسترسی داشته باشه (مثل Button خود VS)



اگه منظورتون اینه که چجوری با کدنویسی روش کلیک کنید :
UserControl1.Button1.PerformClick()

:چشمک:\\\موفق باشید///:چشمک:

سلام

Performclick باید قبلا در Usercontrol تعریف کرده باشیم . درسته؟

میخوام به این دسترسی داشته باشم:

Private Sub UserControl11.Button1_click(ByVal sender As Object, ByVal e As System.EventArgs)

End Sub

Button1 دکمه داخل usercontrol هستش.

فرید نجفلو
شنبه 16 دی 1391, 15:20 عصر
سلام
من دو روش رو بهتون می گم (بسته به شرایط)

1:کنترل سفارشی رو که ساختید فقط خودتون استفاده می کنید
در این حالت می تونید هندلر رویداد رو خودتون اضافه کنید
این کد رو تو فرم بنویسید:


Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
AddHandler UserControl11.Button1.Click, AddressOf Button1_Click
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles UserControl11.ButtonClick
MsgBox("دکمه کلیک شد")
End Sub


2: کنترلی که ساختید ممکنه توسط سایر برنامه نویسان هم استفاده بشه
تو این حالت بهتره رویداد سفارشی برای یوزر کنترل تدارک ببینید

کد زیر رو داخل یوزر کنترل بنویسید:

Public Event ButtonClick As EventHandler(Of EventArgs)

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
RaiseEvent ButtonClick(sender, e)
End Sub


حالا می تونید کنترل رو رو فرم بندازید ، پنجره Properties رو باز و از قسمت رویداد ها این رویدادی رو که اضافه کردید ببینید و اگه ر.ش دابل کلیل کنید کدی مثل این دارید (داخل فرم):

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles UserControl11.ButtonClick
MsgBox("دکمه کلیک شد")
End Sub

asghar2008
شنبه 16 دی 1391, 15:54 عصر
سلام
من دو روش رو بهتون می گم (بسته به شرایط)




سلام

ممنون دوست عزیز