2010-02-16 79 views
3

我需要一个带有底线的文本框,例如表单中使用的inputfields。在TextBox中画线C#(.NET 3.5)

我曾经寻找过像底部单边框这样的功能。 但我认为唯一的方法是在文本框中画一条线。

下面的代码不起作用:

private void textEdit1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) 
    { 
     if (sender is TextBox) 
     { 
      TextBox tmp = (TextBox)sender; 
      Graphics g = CreateGraphics(); 
      Pen p = new Pen(System.Drawing.Color.Red, 8); 
      g.DrawLine(p, tmp.Location.X, tmp.Location.Y, (tmp.Location.X + tmp.Width), tmp.Location.Y); 
      p.Dispose(); 
      g.Dispose(); 
     } 
    } 

希望有人能够帮助!谢谢!

回答

0

如何使用RichtextBox控件并强调文本?

0

我想这是因为TextBox确实是由操作系统本身绘制的。您必须继承TextBox的子类并处理WM_PAINT消息(可能还有边界的WM_NC_PAINT)。

编辑
窗扇的答案提供了一个链接,告诉您如何做我在这里说。

EDIT 2
为您的样品的情况下,这将是足以使Bordernone并添加TextBox到面板?然后,您可以在面板上绘制底线,只要TextBox不填充面板,它也会显示出来。但是,这仅适用于单行TextBoxes