PDA

View Full Version : سوال: دستور راست کلیک به چپ کلیک



Fery666
جمعه 03 خرداد 1392, 11:56 صبح
من تازه دارم با vb.net کار می کنم و این مشکل برای من پیش اومده .
شاید ساده باشه ولی من بلد نیستم .

می خوام وقتی روی یه button کلیک می کنم ( کلیک راست ) دستور چپ کلیک اجرا بشه .
یعنی انگار من چپ کلیک کردم .

یا اگر راهی هست که وقتی من روی یه button کلیک می کنم 2 تا گزینه بیاد بعد یکی رو انتخاب کنم .

میشه در این مورد راهنمایی کنید . هرچی گشتم نبود توی انجمن ! :ناراحت:

با تشکر .

shahryari
جمعه 03 خرداد 1392, 12:17 عصر
سلام
تا اونجایی که من متوجه شدم شما یک ContextMenu و یک باتن دارید و میخواهید و قتی روی باتن کلیک کردید این ContextMenu نمایش داده بشه ....
بشرح زیر عمل کنید
1 - یک ContextMenu به فرمتان اضافه کنید و هرچند تا آیتم دوست داری بهش اضافه کنید
2 - تابع زیر را به کدهاتون اضافه کنید:
Public Sub SetContextMenu(ByVal c As Control, ByVal context As ContextMenuStrip)
c.RightToLeft = RightToLeft.Yes
context.RightToLeft = RightToLeft.Yes
Dim x As Integer = Control.MousePosition.X
Dim y As Integer = Control.MousePosition.Y
Dim w As Integer = c.Width
Dim h As Integer = c.Height
x = x - Control.MousePosition.X + w
y = y - Control.MousePosition.Y + h
Dim xy As New Point(x, y)
context.Show(c, xy)
End Sub
این تابع 2 تا پارامتر داره که اولی اون کنترلی هست که شما میخواهید منوی راست کلیک بهش اضافه بشه و دومی هم همون ContextMenu تون هست
در رویداد باتن کلیک کافیه این ارگومان هار بهش بدید
مثال:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SetContextMenu(Button2, ContextMenuStrip1)
End Sub
موفق و پیروز باشید

مهرداد صفا
جمعه 03 خرداد 1392, 12:25 عصر
من تازه دارم با vb.net کار می کنم و این مشکل برای من پیش اومده .
شاید ساده باشه ولی من بلد نیستم .

می خوام وقتی روی یه button کلیک می کنم ( کلیک راست ) دستور چپ کلیک اجرا بشه .
یعنی انگار من چپ کلیک کردم .

یا اگر راهی هست که وقتی من روی یه button کلیک می کنم 2 تا گزینه بیاد بعد یکی رو انتخاب کنم .

میشه در این مورد راهنمایی کنید . هرچی گشتم نبود توی انجمن ! :ناراحت:

با تشکر .

با سلام.
میتوانید کدی را که برای عملیات مربوط به کلیک چپ استفاده می کنید برای کلیک راست هم استفاده کنید.
برای ContexMenu هم که جناب Shahryari لطف کردند. این هم یک روش مشابه دیگر:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Button1.ContextMenuStrip = New ContextMenuStrip()
Button1.ContextMenuStrip.Items.Add(New ToolStripMenuItem("action1", Nothing, Sub(s, args) MsgBox("action1 selected")))
Button1.ContextMenuStrip.Items.Add(New ToolStripMenuItem("action2", Nothing, (Sub(s, args) MsgBox("action2 selected"))))


End Sub

Fery666
جمعه 03 خرداد 1392, 12:26 عصر
دستت درد نکنه . دقیقا همین رو می خواستم .

خیلی آقایی . دمت گرم .