Как вставить текст в PictureBox
HTTP.
Примерно ~12-15 лет назад мне надо было создать программу для вставки текста(1 в1) в pictureBox.
Раньше для этого надо были танцы с бубном. Т.е API функции , которые не работали должным образом. Опускаю детали, но честно сказать очень было геморно.
Сейчас имея VS2010 и C# всё просто(ну, я так думаю).
Типа отмазки в этом коде нет обработчика ошибок или вот на скорую руку.
Предлагаю код, который каждый пользователь может переделать для себя.
[Form1_Paint] - Это печатаем на форме.
[pictureBox1_Paint] - Это печатаем на картинке(pictureBox).
[pictureBox2_Paint] - Это печатаем на фоне(pictureBox).
На форме мы видим:
a) напечатано на форме.
b) напечатано label1
c) напечатано в pictureBox1 - картинка
d) напечатано в pictureBox2 - фон
Ну вроде так.
Меня заинтересовала тема пользывателя
Раньше для этого надо были танцы с бубном. Т.е API функции , которые не работали должным образом. Опускаю детали, но честно сказать очень было геморно.
Сейчас имея VS2010 и C# всё просто(ну, я так думаю).
Типа отмазки в этом коде нет обработчика ошибок или вот на скорую руку.
Предлагаю код, который каждый пользователь может переделать для себя.
[Form1_Paint] - Это печатаем на форме.
[pictureBox1_Paint] - Это печатаем на картинке(pictureBox).
[pictureBox2_Paint] - Это печатаем на фоне(pictureBox).
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace cshTempo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
e.Graphics.DrawString("arbeiten", new Font("Cambria", 48), Brushes.Black, new PointF(0, 0));
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
label1.Visible = true;//скрыть Label1 - false
label1.Text = "UserNet2008";
pictureBox1.Size = label1.Size;
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
e.Graphics.DrawString(label1.Text, new Font("Cambria", 48), Brushes.Black, new PointF(0, 0));
}
private void pictureBox2_Paint(object sender, PaintEventArgs e)
{
label1.Visible = true;//скрыть Label1 - false
label1.Text = "UserNet2008";
pictureBox2.Size = label1.Size;
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
e.Graphics.DrawString(label1.Text, new Font("Cambria", 48), Brushes.Black, new PointF(0, 0));
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace cshTempo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
e.Graphics.DrawString("arbeiten", new Font("Cambria", 48), Brushes.Black, new PointF(0, 0));
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
label1.Visible = true;//скрыть Label1 - false
label1.Text = "UserNet2008";
pictureBox1.Size = label1.Size;
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
e.Graphics.DrawString(label1.Text, new Font("Cambria", 48), Brushes.Black, new PointF(0, 0));
}
private void pictureBox2_Paint(object sender, PaintEventArgs e)
{
label1.Visible = true;//скрыть Label1 - false
label1.Text = "UserNet2008";
pictureBox2.Size = label1.Size;
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
e.Graphics.DrawString(label1.Text, new Font("Cambria", 48), Brushes.Black, new PointF(0, 0));
}
}
}
На форме мы видим:
a) напечатано на форме.
b) напечатано label1
c) напечатано в pictureBox1 - картинка
d) напечатано в pictureBox2 - фон
Ну вроде так.