'код исправляет проблему с вставкой строки в RichTextBox из Internet Explorer
' "ОбычныйТерминСписокопределенийАдресЦитатыФорматированныйконецформыначалоформы"
'код не работает, если скопировать текст и картинки сразу из Internet Explorer
'форматирование вставляемого текста сохраняется
Public flagCut As Byte
Public LenInputMsg As Long
Public SaveSelStartBeg As Long, SaveSelStartEnd As Long, SaveSelRTF As Long
Private Sub rtbInput_SelChange()
If flagCut = 1 Then GoTo 10
SaveSelStartBeg = SaveSelStartEnd
SaveSelStartEnd = rtbInput.SelStart
10
End Sub
Private Sub rtbInput_Change()
'*** отброс строки sCut при вставке копии текста из Internet Explorer
Dim sTemp1 As String, sText As String, sCut As String, a As Long
sText = rtbInput.Text
sCut = "ОбычныйТерминСписокопределенийАдресЦитатыФорматированныйконецформыначалоформы"
If Len(sText) < (LenInputMsg + Len(sCut)) Then GoTo 10
a = InStr(SaveSelStartBeg + 1, sText, sCut)
If a = 0 Then GoTo 10 'проблем нет
'установить флаг замены
flagCut = 1
rtbInput.SelStart = SaveSelStartBeg
rtbInput.SelLength = Len(sText) - LenInputMsg
sTemp1 = Mid$(sText, SaveSelStartBeg + 1 + Len(sCut), (Len(sText) - LenInputMsg - Len(sCut)))
If Len(sTemp1) <= 2 Then GoTo 5
'откинуть 2 байта перевода строки (и откуда они берутся?)
rtbInput.SelText = "" 'здесь по идее должно убраться форматирование вставляемой строки
rtbInput.SelText = Left(sTemp1, (Len(sTemp1) - 2))
5 sText = rtbInput.Text
10
'запомнить старые значения
LenInputMsg = Len(sText)
flagCut = 0
'*** КОНЕЦ
End Sub
Хотел убрать фоматирование вставляемой строки (мне так надо), но не получилось
.
Также эту проблему можно решить заменой специального файла Винды
http://forum.vingrad.ru/index.php?act=m ... er_enabled
или подправить, но не будет ли проблем в будующих версиях Винды?