如何在c#中的PictureBox顶部绘制可编辑的文本框

时间:2011-09-08 03:47:39

标签: c# .net graphics drawing

我想在图片框的顶部绘制一个可编辑的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 个答案:

答案 0 :(得分:2)

我认为你对“可编辑”部分的“绘图”感到困惑。

听起来你只想使用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 :(得分:1)

听起来像MSPaint程序的TextBox控件,是不是?

尝试这种方法:http://bytes.com/topic/c-sharp/answers/230866-how-insert-text-bitmap-image-using-c

希望得到这个帮助。

答案 2 :(得分:0)

但是在你的代码中,实际从textBox中绘制文本的唯一方法是将焦点改为其他内容(例如通过Tab键)。

  

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