Страницы: 1
RSS
VBA MouseMove
 
Добрый день, Уважаемые эксперты!  
Требуется ваша помощь по VBA. Мне нужно сделать в форме следующее: при наведении мышью на определённый объект (в моём случае на ComboBox1) нужно, чтобы отобразилась текстовая подсказка (я её разместил на Lable), а после того как мышь с объекта убрана, подсказка должна исчезать.  
Первая часть у меня получилась :-)    
Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)  
Label46.Visible = True  
End Sub  
 
А вот как сделать, чтобы подсказка пропадала, никак додуматься не могу (не очень опытен в VBA).  
 
Буду благодарен вам за помощь!
 
а чем вас не устраивает стандартное свойство ControlTepText? Оно есть в списке свойств у ComboBox. Введите туда свой тест и при наведении мыши на ComboBox она будет появляться. Если не хотите руками вписывать это устройство, тобавьте этот код в модуль формы  
 
Private Sub UserForm_Initialize()  
   Me.ComboBox1.ControlTipText = "Моя подсказка"  
End Sub
 
прислушайтесь к Павлу..  
 
ну а так.. -    
 
Private Sub myform_MouseMove(..)  
Label46.Visible = false  
End Sub  
 
при этом label46 не должна пересекаться с другими объектами, тогда потеря фокуса label будет синхронна с приобретением фокуса формой.. если же пересечений не избежать, то прописать выключение label для всех таких(пересекающихся) объектов..
 
{quote}{login=Pavel55}{date=08.09.2008 06:18}{thema=}{post}а чем вас не устраивает стандартное свойство ControlTepText? Оно есть в списке свойств у ComboBox. Введите туда свой тест и при наведении мыши на ComboBox она будет появляться. Если не хотите руками вписывать это устройство, тобавьте этот код в модуль формы  
 
Private Sub UserForm_Initialize()  
   Me.ComboBox1.ControlTipText = "Моя подсказка"  
End Sub{/post}{/quote}  
 
 
Павел, спасибо большое!  Об этом свойстве я не знал, хотя подозревал, что оно должно быть :-)    
Теперь задача немного усложняется:  
а можно ли сделать, чтобы эта подсказка вылезала для каждого варианта ComboBox (для каждого варианта разная)?
 
Наверное, можно, а что такое "вариант ComboBox"?
 
Лучше покажите на примере (про варианты) )
 
{quote}{login=Pavel55}{date=10.09.2008 12:19}{thema=}{post}Лучше покажите на примере (про варианты) ){/post}{/quote}  
 
Вариант - это  я имел ввиду элемент списка ComboBox.
 
{quote}{login=Pavel55}{date=10.09.2008 12:19}{thema=}{post}Лучше покажите на примере (про варианты) ){/post}{/quote}  
 
Вот пример
 
эм... я не знаю, как это сделать. Подозреваю, что это можно сделать с помощью WinAPI. Но в нём я не разбираюсь (
 
Я думаю это не сложно, когда вариант в комбобоксе выбран. Примерно так:  
Private Sub ComboBox1_Change()  
Me.ComboBox1.ControlTipText = ComboBox1.Text  
End Sub  
 
но в процессе выбора, на выпадающем списке, боюсь не выйдет.
 
Буду дальше ковыряться :-)
 
пока только так получилось..  
 
есть закавыки
 
{quote}{login=слэн}{date=11.09.2008 01:05}{thema=}{post}пока только так получилось..  
 
есть закавыки{/post}{/quote}  
 
Уважаемый, Слэн!  
 
Появилось время подумать над этим вопросом. Я столкнулся  с непониманием одной строки (т.к. в VBA я ещё профан).  
Прошу дать пояснения к строке:  
Label50.Caption = ComboBox4.List(Int(Y / 9.65) + ComboBox4.TopIndex)  
Пояснения требуются в связи с тем, что мне требуется адаптировать код к своим задачам.  
 
Заранее благодарен!
 
Посмотрите такой вариант - думаю понятнее будет и проще к своим идеям приспособить.  
Int(Y / 9.65) - Y позиция курсора, а все выражение - есть расчет номера строки.  
 
2 слэн. Заметил небольшой баг: если больше 8 вариантов, появляется скролл, и позици считается неверно, т.е. больше 8 строки не отдает, что понятно.
 
{quote}{login=Лузер™}{date=22.09.2008 08:47}{thema=}{post}Посмотрите такой вариант - думаю понятнее будет и проще к своим идеям приспособить.  
Int(Y / 9.65) - Y позиция курсора, а все выражение - есть расчет номера строки.  
 
2 слэн. Заметил небольшой баг: если больше 8 вариантов, появляется скролл, и позици считается неверно, т.е. больше 8 строки не отдает, что понятно.{/post}{/quote}  
 
Лузер, благодарю.  
Попробую разобраться.
Страницы: 1
Читают тему
Наверх