#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