PDA

View Full Version : سوال: نشون دادن یک کادر کوچیک با رفتن موس روی یک کلمه



ahmad65
سه شنبه 05 آبان 1388, 14:38 عصر
سلام .
تو یه قسمت پروژم گرفتار شدم خواهش میکنم که کمکم کنید . خیلی ممنون .

توضیح مختصر : یه قسمت برنامه قراره شکل ظاهریش شبیه word یا adobe reader . یعنی بصورت صفحه صفحه اطلاعات که متن باشه رو نشون میده ( متن رو از بانک اطلاعاتی میگیرم ) .
حالا مشکلات :

متن رو وارد برنامه کردیم.

4: چطور میشه کاری کرد که کاربر وقتی موس رو میبره روی یه کلمه یه کادر کوچیک کنار کلمه باز بشه و توضیحی در مورد کلمه داده بشه .

ali_md110
چهارشنبه 06 آبان 1388, 00:01 صبح
سلام
شما میتونید یک فرم به اندازه تول تیپی که لازم دارید بسازید ولی بدون کادر و و موقغیت نمایش اونو بر اساس موقعیت مختصات کرسر موس قرار بدید
بدین صورت که اگر موس بر روی فرم به مدت مثلا 3 ثانیه توقف کرد موقعیت xوy اون حساب شده فرم شما نمایش داده بشه
باید فرم تول تیپ شما دارای متد جستجو برای بانک اسکیول یا هر منبع دیگه ای باشه

مثال زیر رو براتون فرستادم

#Region "Location form"
Private Sub locatation_Dialog(ByVal dialog As Form, ByVal x As Short, ByVal y As Short)
Dim row As Integer
row = DG.CurrentCell.RowIndex
Dim rectScreen As Rectangle
Dim rectClient As Rectangle
If row <= 6 Then
rectClient = DG.GetCellDisplayRectangle(x, DG.CurrentCell.RowIndex, True)
rectScreen = Me.GetRectangleOnScreen(DG, rectClient)

If dialog.Width + rectScreen.Left > My.Computer.Screen.WorkingArea.Right Then
dialog.Left = rectScreen.Right - dialog.Width
Else
dialog.Left = rectScreen.Left
End If
If dialog.Height + rectScreen.Top > My.Computer.Screen.WorkingArea.Bottom Then
dialog.Top = rectScreen.Bottom - dialog.Height
Else
dialog.Top = rectScreen.Top
End If
dialog.Location = New System.Drawing.Point(rectScreen.Location)
Else
rectClient = DG.GetCellDisplayRectangle(x, y, True)
rectScreen = Me.GetRectangleOnScreen(DG, rectClient)
If dialog.Width + rectScreen.Left > My.Computer.Screen.WorkingArea.Right Then
dialog.Left = rectScreen.Right - dialog.Width
Else
dialog.Left = rectScreen.Left
End If
If dialog.Height + rectScreen.Top > My.Computer.Screen.WorkingArea.Bottom Then
dialog.Top = rectScreen.Bottom - dialog.Height
Else
dialog.Top = rectScreen.Top
End If
dialog.Location = New System.Drawing.Point(rectScreen.Location)
End If

End Sub
Private Function GetRectangleOnScreen(ByVal Control As System.Windows.Forms.Control, ByVal Rectangle As Rectangle) As Rectangle
Dim r As Rectangle
Dim l As System.Drawing.Point
l = Control.PointToScreen(Rectangle.Location)
r = New Rectangle(l, Rectangle.Size)
Return r
End Function
#End Region

اگر متد locatation_Dialog رو صدا بزنید پارامتر اول که نام فرمی هست که قرار تول تیپ باشه ارگومان دوم موقعیت x که میتونید هر عددی وارد کنید و ارگومان سوم هم هر عددی رو بدید فرمتون توی همون مکان در فرم والد یا صفحه اصلی نشون میده
شما باید بجای دادن اعداد
مختصات x و y
کرسر موس رو با یک تابع دیگه به این تابع یعنی locatation_Dialog ارسال کنید

DLL_DLL
چهارشنبه 06 آبان 1388, 01:56 صبح
ایشون ظاهر کردنشو نخواست که! میخواد متنی که موس روش را هم بگیره! !!!

Hossis
چهارشنبه 06 آبان 1388, 06:53 صبح
بحث مبنائی هست
باید دید شما در نمایش متن به صورت صفحه به صفحه از چه کنترلی استفاده کرده اید؟
اگر از کنترل WebBrowser استفاده کرده باشید، یک راهی هست و اون اینه که روی یک کلمه بوک مارک کرده و به اصطلاح پاورقی بزنیم ، آنگاه با رفتن ماوس روی کلمه ،‌پاورقی اون به صورت تول تیپ نشون داده می شه.
راه دیگری هم داره و اون اینه که کلمه زیر موس را تشخیص داده و هنگام تغییر این کلمه اگر شرط خاصی برقرار بود( مثلا این کلمه بوک مارک شده و لینک داده شده بود) یک تول تیپ نمایش داده بشه.