MIT писал(а):Как отрендерить невидимый текстбокс на картинку?
Использование метода DrawToBitmap имеет следующие ограничения:
- Исключение ArgumentException может выдаваться для больших точечных рисунков. Максимально допустимый размер определяется особенностями компьютера.
- Метод DrawToBitmap не поддерживает элементы управления Ink для операционных систем Windows XP Tablet PC Edition 2005.
- Метод DrawToBitmap не прорисовывает дочерний объект TextBox, если для свойства Visible объекта TextBox задано значение false.
- Элементы управления внутри контейнеров прорисовываются в обратном порядке.
- Метод DrawToBitmap обладает ограниченной функциональностью по отношению к объекту RichTextBox; с его помощью прорисовывается только граница точечного рисунка.
Dim bmp As New Bitmap(TextBox1.Width, TextBox1.Height)
TextBox1.DrawToBitmap(bmp, New Rectangle(0, 0, bmp.Width, bmp.Height))
bmp.Save("C:\test.bmp")
MIT писал(а):Как отрендерить невидимый текстбокс на картинку?
MSDN писал(а):Метод DrawToBitmap не прорисовывает дочерний объект TextBox, если для свойства Visible объекта TextBox задано значение false.
textBox tb = new textBox();
tb.DrawToBitmap();
Тоже мысль, но я все-же склоняюсь к идее выноса текстбокса за пределы видимости.Ramzes писал(а):А отрисовать Textbox, который не лежит на форме?
Metallikus писал(а):А что если использовать метод drawString() для прорисовки textbox.text в picturebox, а потом picturebox.DrawToBitmap()? Ведь picturebox можно сделать похожим на textbox, и шрифт в drawString() можно сделать таким же как и в textbox... И у тебя получится графически точная копия текстбокса. Правда ресурсов много жрать будет...
Dim rect As New Rectangle(0, 0, (TextBox.Size.Width - 1), (TextBox.Size.Height - 1))
graphics.DrawRectangle(New Pen(VisualStyleInformation.TextControlBorder), rect)
rect.Inflate(-1, -1)
graphics.DrawRectangle(SystemPens.Window, rect)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17