PDA

View Full Version : یک سوال درباره مکان ContextMenuStrip1



hawar101
دوشنبه 03 تیر 1392, 11:55 صبح
سلام دوستان

من یک مشکل کوچک دارم میدونم سادست ولی هر چقد گشتم پیدا نکردم . من یک دکمه یا button دارم با یک
ContextMenuStrip1 حالا من با این کد اینارو ربط دادم وقتی روی دکمه کلیک میشه منو باز میشه ولی از گوشه سمت چپ پایین دکمه شروع میشه .حالا مشکل اینجاست من میخوام مکان قرار گرقتن ContextMenuStrip1را نسبت به دکمه خودم معلوم کنم .در عکس هم نشان دادم . به جای پایین سمت چپ -بالا سمت راست .یک نمونه هم گذاشتم که دوستان بهتر متوجه من شوند .

ممنون


ContextMenuStrip1.Show(Class11, 0, Class11.Height)

xxnagin
دوشنبه 03 تیر 1392, 12:25 عصر
سلام
از این کد استفاده کن

ContextMenuStrip1.Show(MousePosition, ToolStripDropDownDirection.AboveRight)

hawar101
دوشنبه 03 تیر 1392, 13:07 عصر
سلام دوست عزیز اول بخاطر توجه شما ممنونم
من نمیخوام جایی که ماوس کلیک بشه منو باز بشه می خوام به جای اینکه از گوشه سمت چپ پایین باز بشه .از گوشه سمت راست بالا باز بشه .مثل عکس 2

xxnagin
دوشنبه 03 تیر 1392, 13:41 عصر
اگه میخوای این کارو کنی یه کنترلی استفاده کن که دکمه منو دار داشته باشه
http://www.codeproject.com/Articles/297137/Glass-Style-Button-With-Dropdown-MenuList-using-VB
اینم امتحان کن

ContextMenuStrip1.Show(MousePosition, ToolStripDropDownDirection.Right)

hawar101
دوشنبه 03 تیر 1392, 13:58 عصر
نه دوست عزیز اینم نشد .مثل همون قبلی بود هر جا کلیک میکردم اونجا باز میشد .

واقعا کارم لنگه ممنون میشم این مشکل را حل کنی .

shahryari
دوشنبه 03 تیر 1392, 17:12 عصر
سلام
اول این تابع را به ماژول عمومی یا بخش کد نویسی فرمت اضافه کند
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
سپس در رویداد باتن کلیک دوتا آرگومان ورودی تابع رو بهش بده که اولیش باتن یا هر کنترلی که قراره روش کلیک بشه هست و دومی هم یک کنترل ContextMenuStrip
مثال :
SetContextMenu(Button1, ContextMenuStrip1)

hawar101
دوشنبه 03 تیر 1392, 17:59 عصر
می شه یک نمونه درست کنید یا رو همون نمونه من کار کنید . من انجام میدم ولی نمیشه
همین که گفتید انجام میدم نمیشه این شکلی میشه . من نمونه که درست کردم میزارم اگر وقت داشتید یک نگاه بندازید ممنون میشم

واقعا ممنون

hawar101
پنج شنبه 06 تیر 1392, 04:28 صبح
کسی نیست جواب بده .:ناراحت:

h_a_m_i_d
پنج شنبه 06 تیر 1392, 15:25 عصر
با سلام با اجازه اقای شریعتی بعضی جاهای کدشون مشکل داشت اصلاح شد
به همراه پروژه اماده در خدمت شما