Как добавить картинки в RichTextBox в цикле?

#vb.net #image #richtextbox

#vb.net #изображение #richtextbox

Вопрос:

Я добавляю разные массивы строк в RichTextBox, и я тоже хочу вставить изображения. Я искал метод, и все они говорят, что вставить его. Я пробовал это, но это не работает в цикле.

 Dim df As DataFormats.Format = DataFormats.GetFormat(DataFormats.Bitmap)
for i as integer = 0 to 50
 RTF1.text = RTF1.text amp; arr1(i) amp; arr2(i) amp; vbnewline 
 Dim bmp As New Bitmap(picarr(i))
 Clipboard.SetImage(bmp)
 RTF1.Paste(df)
next i
 

Я тоже пробовал SendKeys , потому что, когда я нажимаю Ctrl V, он вставляет картинку. Кроме того, я попытался выйти из цикла, и он вставляет только последнее изображение.

Комментарии:

1. Обратите внимание, что Step 1 это избыточно. Вам нужно использовать только Step тогда, когда вы хотите увеличить i на число, отличное от 1.

2. Что такое picarr и как он заполняется? Вы убедились, что это так, как ожидалось?

3. его массив имен файлов изображений и да, это работает, потому что, когда я нажимаю ctrl V, он вставляет изображение, поэтому оно работает

Ответ №1:

Каждый раз, когда вы устанавливаете RichTextBox.Text свойство, вы теряете все данные RTF, которые оно ранее содержало (включая форматирование, изображения и т. Д.), И Вы сохраняете только обычный текст (из-за = RTF1.Text amp; ... ).

Вместо этого используйте AppendText() метод, подобный этому:

 Dim df As DataFormats.Format = DataFormats.GetFormat(DataFormats.Bitmap)
For i As Integer = 0 To 50
    RTF1.AppendText(arr1(i) amp; arr2(i) amp; vbNewLine)
    Using bmp As New Bitmap(picarr(i))
        Clipboard.SetImage(bmp)
    End Using
    RTF1.Paste(df)
Next