2010-02-16 64 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