PDA

View Full Version : سوال: استفاده از ابزار ToolTip برای ToolStipMenuItem



ROSTAM2
یک شنبه 02 مهر 1402, 15:18 عصر
سلام
من برای آیتم های منو می خوام ToolTip سفارشی استفاده کنم بنابر این از ابزار ToolTip استفاده کردم ولی موقیعت یا نقطه نمایش اون رو نمی دونم چطور به ToolTip معرفی کنم که نمایش داده بشه:

Shared Sub MenuItem_MouseHover(sender As Object, e As EventArgs)
Dim MenuItem As ToolStripMenuItem = sender
Dim Item As DesktopMenuItem = sender.Tag
With Form1.ToolTip1
.Active = True
.ShowAlways = True
.Show(Item.Title + vbCrLf + Item.Address, Form1, MenuItem.Bounds.X, MenuItem.Bounds.Y)
End With
End Sub
Shared Sub MenuItem_MouseLeave(sender As Object, e As EventArgs)
With Form1.ToolTip1
.Hide(Form1)
End With
End Sub

ROSTAM2
یک شنبه 02 مهر 1402, 16:35 عصر
تونستم به نمایش درش بیارم
مشکل ار پروسیجرها بود که Public نبودند

ولی مشکلی که هست من می خوام دقیقا زیر نشانگر ماوس نمایش داده بشه:

Public Shared Sub MenuItem_MouseHover(sender As Object, e As EventArgs)
Dim MenuItem As ToolStripMenuItem = sender
Dim Item As DesktopMenuItem = sender.Tag
With Form1.ToolTip1
.ShowAlways = True
.Show(Item.Title + vbCrLf + Item.Address, MenuItem.Owner, MenuItem.Bounds.X, MenuItem.Bounds.Y + MenuItem.Height)
End With
End Sub
Public Shared Sub MenuItem_MouseLeave(sender As Object, e As EventArgs)
With Form1.ToolTip1
.Hide(Form1)
End With
End Sub


154957

ROSTAM2
یک شنبه 02 مهر 1402, 21:31 عصر
خوب من روش صحیح بدست آوردن نقطه نمایش رو بدست آوردم منتها ....


Public Shared Sub MenuItem_MouseHover(sender As Object, e As EventArgs)
Dim MenuItem As ToolStripMenuItem = sender
Dim Item As DesktopMenuItem = sender.Tag
With Form1.ToolTip1
.ShowAlways = True
.Show(Item.Title + vbCrLf + Item.Address, MenuItem.Owner, MenuItem.Owner.PointToClient(Cursor.Position).X, MenuItem.Owner.PointToClient(Cursor.Position).Y)
End With
End Sub


نمی دونم سایز و ابعاد نشانگر ماوس رو از چه تابعی باید بدست بیارم.

ROSTAM2
یک شنبه 02 مهر 1402, 21:42 عصر
من نتونستم سایز دقیق کرسر رو بدست بیارم گرچه سایز کرسر اشیاء رو می شه بدست آورد ولی ابعاد بزرگتر از او.ن چیزیه که انتظار می ره
من اومدم و از ابعاد 16 در 16 برای فاصله مورد نیاز استفاده کردم:


Public Shared Sub MenuItem_MouseHover(sender As Object, e As EventArgs)
Dim MenuItem As ToolStripMenuItem = sender
Dim Item As DesktopMenuItem = sender.Tag
With Form1.ToolTip1
.ShowAlways = True
.Show(Item.Title + vbCrLf + Item.Address, MenuItem.Owner, MenuItem.Owner.PointToClient(Cursor.Position).X + 16, MenuItem.Owner.PointToClient(Cursor.Position).Y + 16)
End With
End Sub


154958