none
Visual Basic - Вставка изображения в RichTextBox RRS feed

  • Вопрос

  • Необходимо что бы в RichTextBox отображались картинки. Что-то подобие ICQ смайлов. Как это можно сделать? И когда много изображений, они заменялись в определенный текст... Например #1# #1# #1# #1# это текст в троке. он заменяется определенным изображением. Но если из больше 2, то последующие будут текстом - #нет# #нет# #картинка# #картинка#... Это реально сделать?
    20 марта 2011 г. 12:05

Ответы

  • Есть несколько способов вставки картинки в richtextbox. Самый простой способ - это вставка через буфер обмена:

        Dim bm As Bitmap = New Bitmap("путь к картинке")
        Clipboard.SetDataObject(bm)
        Dim format As DataFormats.Format = DataFormats.GetFormat(DataFormats.Bitmap)
    
        If RichTextBox1.CanPaste(format) Then
          RichTextBox1.Paste(format)
        End If
    

    Также можно использовать rtf форматирование текста, но это достаточно тяжело и нужно изучать спецификаю rtf. Готовый контрол и пример реализации (правда на C#) вы можете посмотреть здесь - Insert Plain Text and Images into RichTextBox at Runtime

    Еще один способ, но еще более низкоуровневый и тяжелый - это использование OLE - Inserting images into a RichTextBox control (the OLE way).

    Во всех этих спобовах после заменты текста на картинку вы уже не будите иметь доступ к оригинальному тексту (без картники), так что скорее всего нужно будет хранить текст еще где-то, чтобы выполнить обратное преобразование.

     


    Для связи [mail]
    • Помечено в качестве ответа Siompc 21 марта 2011 г. 15:40
    21 марта 2011 г. 7:19

Все ответы

  • Есть несколько способов вставки картинки в richtextbox. Самый простой способ - это вставка через буфер обмена:

        Dim bm As Bitmap = New Bitmap("путь к картинке")
        Clipboard.SetDataObject(bm)
        Dim format As DataFormats.Format = DataFormats.GetFormat(DataFormats.Bitmap)
    
        If RichTextBox1.CanPaste(format) Then
          RichTextBox1.Paste(format)
        End If
    

    Также можно использовать rtf форматирование текста, но это достаточно тяжело и нужно изучать спецификаю rtf. Готовый контрол и пример реализации (правда на C#) вы можете посмотреть здесь - Insert Plain Text and Images into RichTextBox at Runtime

    Еще один способ, но еще более низкоуровневый и тяжелый - это использование OLE - Inserting images into a RichTextBox control (the OLE way).

    Во всех этих спобовах после заменты текста на картинку вы уже не будите иметь доступ к оригинальному тексту (без картники), так что скорее всего нужно будет хранить текст еще где-то, чтобы выполнить обратное преобразование.

     


    Для связи [mail]
    • Помечено в качестве ответа Siompc 21 марта 2011 г. 15:40
    21 марта 2011 г. 7:19
  • Как много еще необходимо изучить... :) Спасибо! Попробую.

    Один момент... Где-то читал, что если будет 30 и более изображений, будет сильно тормозить, так ли это? И будет ли восмроизводится анимация?

    21 марта 2011 г. 15:40