PDA

View Full Version : سوال: رويداد MouseDown برای فرم (مثل KeyPreview)



shahrdar
دوشنبه 18 آذر 1387, 21:23 عصر
سلام به همه

اگه خاصيت keypreview فرم روشن باشه و روی هر کنترلی (برای مثال richbox) دکمه ايی بزنيد، رويداد keypress برای فرم اجرا ميشه

من دنبال يه همچين خاصيتی برای کليک موس ميگردم هر چی گشتم پيدا نکردم

پيشا پيش ممنون

shahrdar
دوشنبه 18 آذر 1387, 21:28 عصر
اينم اضافه کنم که ميشه تويه رويداد mouseclick يا mouseDown اين دستور رو نوشت Form_mousedown(Sender,e)

ولی وقتی تقريباً 250 تا کنترل هست اينکار کمی سخت ميشه

mostafaaa
دوشنبه 18 آذر 1387, 21:37 عصر
سلام دوست من
میتونی توی رویداد مربوط به موس رویداد فرم رو فراخوانی کنی

Private Sub RichTextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles RichTextBox1.MouseDown
OnMouseDown(e)
End Sub

shahrdar
دوشنبه 18 آذر 1387, 22:07 عصر
دوسته عزيز ممنون از راهنماييت ولی من توی پست دوم نوشتم که اگه کنترل ها زياد باشن (که توی پروژه تقريباً 250 تا هست) اين کار خسته کننده و خيلی تولانيست

shask00l
سه شنبه 19 آذر 1387, 01:51 صبح
روشی هست که با اون میتونید یک تکه کد را به event های تعداد دلخواهی کنترل نسبت بدید . با حلقه و اینا .......
توی این سایت توی بخش vb بحث شده .
http://www.p2p.dotnetsource.com/Default.aspx?g=posts&t=7076
^^^^ نسبت دادن یک کد خاص به event مشابه در چند کنترل

mostafaaa
سه شنبه 19 آذر 1387, 09:24 صبح
سلام دوست من
اون زمانی که من اون پست رو دادم توی این تاپیک یه پست بیشتر نبود، گویا پستهامون رو همزمان دادیم
در هر صورت برای اینکه یه رویداد رو به همه کنترلهای فرمت اختصاص بدی میتونی از این روش استفاده کنی.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each CTRL As Control In Me.Controls
AddHandler CTRL.MouseDown, AddressOf ControlsMouseDown
Next
End Sub
Private Sub ControlsMouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
OnMouseDown(e)
End Sub