我想在图片框的顶部绘制一个可编辑的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));
我坚持这个
答案 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键)。