PDA

View Full Version : سوال: سؤال در مورد قرار گرفتن موس روی لیبل



Hassan2500
چهارشنبه 06 اردیبهشت 1391, 01:16 صبح
سلام
من این کدو میخام که اگر نشانگر موس روی لیبل1 قرار گرفت متن داخل لیبل1 underline و رنگ متن آبی شود و اگر نشانگر موس روی لیبل1 کنار رفت متن داخل لیبل1 دوباره بدون Underline و رنگ متن سیاه شود.

Mr'Jamshidy
چهارشنبه 06 اردیبهشت 1391, 02:04 صبح
اگر میخواید رویداد MouseEnter و MouseLeave دات نت رو شبیه سازی کنید فکر میکنم با تابع GetCursorPos بتونید این کار رو انجام بدید

اما اگر فقط میخواهید زمانی که اشاره گر موس روی lbl1 رفت متن داخلش underl بشه و زمانی که روی lbl2 رفت underl حذف بشه خیلی ساده با رویداد MouseMove میتونید این کار رو انجام بدید

ASedJavad
چهارشنبه 06 اردیبهشت 1391, 11:30 صبح
پست زیر رو یه برررسی بکنید:http://barnamenevis.org/showthread.php?81542-%D8%A2%D8%B1%D8%B4%DB%8C%D9%88-%D8%B3%D9%88%D8%B1%D8%B3-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D9%88-%D8%A8%D8%AF%D8%B1%D8%AF%D8%A8%D8%AE%D9%88%D8%B1&p=414788&viewfull=1#post414788

Hassan2500
چهارشنبه 06 اردیبهشت 1391, 12:29 عصر
سلام
رفتم دیدم ولی اون چیزی که میخاستم نبود مثلا این کد زیر که گذاشتم اگه میشه کاری کنید که که فقط لیبل باشد نه پیکچر

Option Explicit
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SetCapture Lib "user32" (ByVal Hwnd As _
Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As _
POINTAPI) As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal _
Hwnd As Long, lpPoint As POINTAPI) As Long

Dim MouseIn As Boolean

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim xyCursor As POINTAPI
Dim Xi As Long
Dim Yi As Long

SetCapture Picture1.Hwnd

GetCursorPos xyCursor
ScreenToClient Picture1.Hwnd, xyCursor

Xi = xyCursor.X * Screen.TwipsPerPixelX
Yi = xyCursor.Y * Screen.TwipsPerPixelY

If Xi < 0 Or Yi < 0 Or Xi > Picture1.Width Or Yi > _
Picture1.Height Then

If Button = 0 Then
' MouseMove
End If

If MouseIn Then

Label1.FontUnderline = False

If Button <> 0 Then

'MouseUp

End If

If Button = 0 Then
ReleaseCapture
End If

MouseIn = False

End If

Else

If Button = 0 Then

'MouseMove

End If

If Not MouseIn Then

Label1.FontUnderline = True

MouseIn = True

End If

End If
End Sub

Slytherin
چهارشنبه 06 اردیبهشت 1391, 13:44 عصر
سلام
من این کدو میخام که اگر نشانگر موس روی لیبل1 قرار گرفت متن داخل لیبل1 underline و رنگ متن آبی شود و اگر نشانگر موس روی لیبل1 کنار رفت متن داخل لیبل1 دوباره بدون Underline و رنگ متن سیاه شود.



Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.FontUnderline = False
Label1.ForeColor = vbBlack
End Sub

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.FontUnderline = True
Label1.ForeColor = vbBlue
End Sub

Hassan2500
چهارشنبه 06 اردیبهشت 1391, 15:59 عصر
این کد شما زمانی عمل میکنه که لیبل وسط فرمه ولی وقتی گوشه فرم است و نشانگر موس از فرم خارج میشه عمل نمیکنه اگه میشه درستش کنید

محسن واژدی
چهارشنبه 06 اردیبهشت 1391, 20:17 عصر
سلام
سورس زیر را بررسی کنید، برای استفاده کافی است user-control را به پروژه تون منتقل کنین

منبع سورس:
http://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=49842&lngWId=1
(البته سورس ضمیمه این پست برابر مشکل شما کمی ویرایش شده)

موفق باشید