(LostFocus и GotFocus) - вопрос по прежнему не решен

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Artur KakTus
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 19.02.2004 (Чт) 12:00
Откуда: Ukraine

(LostFocus и GotFocus) - вопрос по прежнему не решен

Сообщение Artur KakTus » 05.04.2004 (Пн) 14:50

Извените меня за наглость (два аопроса за час), но опять вопрос.
Этот вопрос я уже подымал несколько раз и не получил ответа.

Для меня остается загадкой Почему в ВБА не работают события Got и lostFocus. И самое главное, что они есть в хелпе и частично рабатают.
Вот в чем дело ---> Если создать текстбокс на рабочем листе и написать для его процедуру (Гот или ЛостФокус) то все отлично работает. Однако стоит мне написать такую процедуру для текстбокса формы -- КАК ПОЛНАЯ НЕРАБОТОСПОСОБНОСТЬ этих процедур.
Сначала я думал, может я не в том месте ее описую, но пробывал в ВБ-нормально.
Прошу подсказать КАК ИСПОЛЬЗОВАТЬ выше перечисленные обработчики ИМЕННО НА ФОРМАХ В ВБА.

Я уже измотался, не раз пробывал, хоть бы хны. Прошу помощи. :lol:
Последний раз редактировалось Artur KakTus 06.04.2004 (Вт) 11:11, всего редактировалось 1 раз.
Artur KakTus

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 06.04.2004 (Вт) 9:47

код в студию... а то что-то не очень понятно, о чем идет речь
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Artur KakTus
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 19.02.2004 (Чт) 12:00
Откуда: Ukraine

код в студии

Сообщение Artur KakTus » 06.04.2004 (Вт) 10:00

Вот код одного из реально действующих событий ченж моей программы, (проверка на правильность ввода процента долевого участия сырья). Однако если заменить Change() на LostFocus -ТО НЕ РАБОТАЕТ. Это происходит в ВБА (не только применительно к этой процедуре) и главное если бы процедуру поместить на лист, то все работает НЕ РАБОТАЕТ НА ФОРМЕ. Фрагмент кода этой формы

Option Explicit
Private Sub proc_ml1_Change()
On Error Resume Next
proc_smd1.Text = 100 - Val(proc_ml1.Text) - Val(proc_dis1.Text)
If proc_smd1.Text < 0 Then
MsgBox "Правильно вводите процент участия"
proc_dis1.Text = 0
proc_dis1.SelStart = 0
proc_dis1.SelLength = Len(proc_dis1.Text)
proc_dis1.SetFocus
Exit Sub
Else
sm_deg1.Text = Round(Val(potr_deg1.Text) * Val(proc_smd1.Text) / 100)
mas_deg1.Text = Round(Val(potr_deg1.Text) * Val(proc_ml1.Text) / 100)
dis_deg1.Text = Round(Val(potr_deg1.Text) * Val(proc_dis1.Text) / 100)
End If

End Sub
Artur KakTus

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 06.04.2004 (Вт) 10:13

вот никогда в Office/VBA не кодил, по этому...
ну не важно...
Справка Microsoft Visual Basic писал(а):Enter, Exit Events


Enter occurs before a control actually receives the focus from a control on the same form. Exit occurs immediately before a control loses the focus to another control on the same form.

Syntax

Private Sub object_Enter( )

Private Sub object_Exit( ByVal Cancel As MSForms.ReturnBoolean)

The Enter and Exit event syntaxes have these parts:

Part Description
object Required. A valid object name.
Cancel Required. Event status. False indicates that the control should handle the event (default). True indicates the application handles the event and the focus should remain at the current control.


Remarks

The Enter and Exit events are similar to the GotFocus and LostFocus events in Visual Basic. Unlike GotFocus and LostFocus, the Enter and Exit events don't occur when a form receives or loses the focus.

For example, suppose you select the check box that initiates the Enter event. If you then select another control in the same form, the Exit event is initiated for the check box (because focus is moving to a different object in the same form) and then the Enter event occurs for the second control on the form.

Because the Enter event occurs before the focus moves to a particular control, you can use an Enter event procedure to display instructions; for example, you could use a macro or event procedure to display a small form or message box identifying the type of data the control typically contains.

Note To prevent the control from losing focus, assign True to the Cancel argument of the Exit event.
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Artur KakTus
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 19.02.2004 (Чт) 12:00
Откуда: Ukraine

Работает однако

Сообщение Artur KakTus » 06.04.2004 (Вт) 11:09

Спасибо Exit и Enter работают. Однако Гот и Ласт фокус по прежнему нет. Жаль хотелось разобраться, но будем довольствоваться тем, что есть. И как я понял Exit может заменить LostFocus и разница между ними не особо большая, если применять их к моей задаче.
Спасибо за помощь :lol: :lol: :lol:
Artur KakTus


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, PetalBot, SemrushBot и гости: 17

    TopList