tooltiptext

6 отговора 271 прегледа
#1

tooltiptext

здравейте! опитвам се да направя tooltiptext на няколко реда за сега без успех. мисля че е възможно, защото за msgbox например в редактора параметрите се изписват в два реда, поне така е при мен. в програмата която правя трябва да се въвеждат около 10 кода и искам чрез това нещо да улеснявам избора.

Отговор
в отговор на нaчинaeщ #2

Re: tooltiptext

Всеки контрол си има това свойство. Сетваш например Command1.ToolTipText = "This is command button", и свойството започва да работи за тебе.

Вече по-трудното е, когато искаш от ListBox да посочваш с мишката някой ред, и като тоолтип да излиза информация за въпросния ред, като за всеки ред от ListBox-а може да е различна информацията. Но за това нека някой друг даде малко инфо, че и на мене ми тряяя... ;о)

----------------------------------
помислих, хареса ми, помислих пак...
Отговор
в отговор на Щиpлиц #3

Re: tooltiptext

във формата слагам един Label на който задавам tooltiptex даден стринг. понеже стринга е дълъг(съдържа кодове и описание на продукт - например 01 продукт1 и т.н.) искам да бъде на няколко реда. с vbcrlf не става. използвам момента да попитам и за това как да направя една модална форма popup, тоест докато не се затвори с бутон, да не се скрива. в access има такова свойство, но в vba не намерих такова нещо.

Отговор
в отговор на нaчинaeщ #4

Re: tooltiptext

За модалната форма:

Form2.Show 1

За MultiLine ToolTip - имам код който го прави това, но ToolTip-a се "прикача" към определен прозорец или каквото и да е само да предоставя hWnd property. Само че ако искаш кода, ще трябва да го направя като някакъв Class за да може да се ползва по-лесно - сега е "интегриран" в един мой User Control.
Със стандартния Label на Visual Basic няма да работи, защото той не предоставя hWnd property.

Отговор
в отговор на Щиpлиц #5

Re: tooltiptext


Option Explicit

Private Declare Function SendMessage _
Lib "user32" Alias "SendMessageA" ( _
ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const LB_ITEMFROMPOINT = 425
Private Sub Form_Load()
Dim i As Long

For i = 0 To 10
List1.AddItem i
Next i

End Sub

Private Sub List1_MouseMove( _
Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim X_ As Integer, Y_ As Integer
Dim Coord As Long
Dim RetVal As Long

X_ = X \ Screen.TwipsPerPixelX
Y_ = Y \ Screen.TwipsPerPixelY

Coord = MakeDWord(X_, Y_)

RetVal = SendMessage( _
List1.hwnd, LB_ITEMFROMPOINT, 0&, (Coord))

If HiWord(RetVal) = 1 Then
'Курсора е извън list box-a -> outside the client area
End If

If HiWord(RetVal) = 0 Then
Me.Caption = List1.List(LoWord(RetVal))
End If

End Sub
Function MakeDWord(LoWord As Integer, HiWord As Integer) As Long
MakeDWord = (HiWord * &H10000) Or (LoWord And &HFFFF&)
End Function
Function LoWord(DWord As Long) As Integer
If DWord And &H8000& Then ' &H8000& = &H00008000
LoWord = DWord Or &HFFFF0000
Else
LoWord = DWord And &HFFFF&
End If
End Function
Function HiWord(DWord As Long) As Integer
HiWord = (DWord And &HFFFF0000) \ &H10000
End Function

Редактирано от Щиpлиц на

Отговор
в отговор на нaчинaeщ #6

Re: tooltiptext

shto se otnasq za listbox, tooltipa mojesh da go frasnesh i na MouseDown, udobno e kat elementite sa dylgi, pyk listboxa ne moje izcqlo da gi vizualizira:

lstBox.ToolTipText = lstBox.List(lstBox.ListIndex)

Отговор
в отговор на Щиpлиц #7

Re: tooltiptext

Abe az mislia che sum go pravil po tozi nachin:
edna forma s edin listbox i slednia kod za primer

Private Sub Form_Load()
For i = 0 To 10
List1.AddItem Item & i
Next i
End Sub

Private Sub List1_Click()
List1.ToolTipText = "Izbrali ste red " & List1.Text
End Sub

Наведи главата защото прелитам ниско с асконата !!!
Отговор