如何让TextBox的黑色边框变成淡蓝色(borderstyle=FixedSingle)

- 中国WEB开发者网络 (http://www.webasp.net)
-- 技术教程 (http://www.webasp.net/article/)
--- 如何让TextBox的黑色边框变成淡蓝色(borderstyle=FixedSingle) (http://www.webasp.net/article/5/4611.htm)
-- 作者:未知
-- 发布日期: 2003-07-12
我在写的过程中发现了这个控件并不用 Paint 事件,所以只好直接截取 WndProc 函数了,很简单,是这样的:

Public Class TextBoxBlue
  Inherits TextBox

  Protected Overrides Sub WndProc(ByRef m As system.Windows.Forms.Message)
    MyBase.WndProc(m)
    Const WM_PAINT As Integer = &HF
    If m.Msg = WM_PAINT AndAlso Me.BorderStyle = BorderStyle.FixedSingle
Then
      Dim g As Graphics = Graphics.FromHwnd(Me.Handle)
      g.DrawRectangle(Pens.Blue, Me.ClientRectangle.Left,
Me.ClientRectangle.Top, Me.ClientRectangle.Width - 1,
Me.ClientRectangle.Height - 1)
      g.Dispose()
    End If
  End Sub
End Class

也可以自己添加一个属性叫做 BorderColor 来选择框架的颜色。


webasp.net