Как нарисовать редактируемое текстовое поле поверх PictureBox в c # - PullRequest
0 голосов
/ 08 сентября 2011

Я хочу нарисовать редактируемый TextBox поверх графического блока, и пользователю разрешено вводить текст в это поле. После ввода текста текстовое поле должно исчезнуть, а введенный текст должен быть нарисован на рисунке в графическом блоке. Пожалуйста, помогите мне в этом, я делаю это в c #.

Bitmap myBitmap = new Bitmap("C:\\myImage.jpg");
Graphics g = Graphics.FromImage(myBitmap);
g.DrawString("My\nText", new Font("Tahoma", 20), Brushes.White, new PointF(0, 0));

Я застрял с этим

Ответы [ 3 ]

2 голосов
/ 08 сентября 2011

Я думаю, что вы путаете «рисование» с «редактируемой» частью.

Звучит так, будто вы просто хотите использовать TextBox.«Базовая» демонстрация:

private Bitmap bmp = new Bitmap(256, 256);

private void Form1_Load(object sender, EventArgs e)
{
  pictureBox1.Image = bmp;
}

private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
  TextBox txt = new TextBox();
  txt.Location = e.Location;
  txt.Width = 120;
  txt.Leave += new EventHandler(txt_Leave);
  pictureBox1.Controls.Add(txt);
}

void txt_Leave(object sender, EventArgs e)
{
  using (Graphics g = Graphics.FromImage(bmp))
  {
    g.DrawString(((TextBox)sender).Text, ((TextBox)sender).Font, Brushes.Black, ((TextBox)sender).Location);
  }
  ((TextBox)sender).Leave -= new EventHandler(txt_Leave);
  pictureBox1.Controls.Remove((TextBox)sender);
  ((TextBox)sender).Dispose();
  pictureBox1.Invalidate();
}
1 голос
/ 08 сентября 2011

Звучит как элемент управления TextBox программы MSPaint, верно?

Попробуйте этот подход: http://bytes.com/topic/c-sharp/answers/230866-how-insert-text-bitmap-image-using-c

Надеюсь, эта помощь.

0 голосов
/ 08 мая 2013

Но в вашем коде единственный способ на самом деле нарисовать текст из textBox - это изменить фокус на что-то другое (например, с помощью клавиши Tab).

https://stackoverflow.com/a/7350238/2359840

...