Что значит мерцание? Перерисовка?
Это невозможно, если ты меняешь шрифт, то должен обязательно перерисовать текстбокс, чтобы отобразить изменения.
Другое дело, что можно (и нужно) исключать повторную перерисовку. Например так:
- Код: Выделить всё
Option Explicit
...
Private SelFont As Boolean
...
Private Sub Form_MouseMove(...)
If Not SelFont Then
With Text1.Font
...
End With
SelFont = False
End If
End Sub
Private Sub Text1_MouseMove(...)
If SelFont Then Exit Sub
With Text1.Font
...
End With
SelFont = True
End Sub
В принципе, можно обойтись и без флаговой переменной. Если у тебя в fnt1 это фонт по умолчанию, а fnt2 это фонт, когда курсор наведен на текстбокс, то проверка может выглядеть так:
- Код: Выделить всё
If Text1.Font Is fnt1 Then Set Text1.Font = fnt2
Только это гораздо медленнее, чем с использованием флаговой переменной.
Lasciate ogni speranza, voi ch'entrate.