{"id":100146,"date":"2016-01-21T02:41:33","date_gmt":"2016-01-20T18:41:33","guid":{"rendered":"http:\/\/www.ilzhi.cn\/?p=100146"},"modified":"2016-02-01T01:17:21","modified_gmt":"2016-01-31T17:17:21","slug":"%e3%80%90vb-net%e3%80%91%e8%87%aa%e5%ae%9a%e4%b9%89textbox%e7%b1%bb%ef%bc%8c%e6%b7%bb%e5%8a%a0%e6%98%be%e7%a4%ba%e4%b8%8b%e5%88%92%e7%ba%bf%e5%b1%9e%e6%80%a7","status":"publish","type":"post","link":"http:\/\/www.ilezhi.cn\/?p=100146","title":{"rendered":"\u3010VB.NET\u3011\u81ea\u5b9a\u4e49TextBox\u7c7b\uff0c\u6dfb\u52a0\u663e\u793a\u4e0b\u5212\u7ebf\u5c5e\u6027"},"content":{"rendered":"<p>\u5b9e\u73b0\u529f\u80fd\uff1a<br \/>\na.ShowLine \u53c2\u6570\uff1a\u8bbe\u7f6e\u4e0b\u5212\u7ebf\u662f\u5426\u53ef\u89c1<br \/>\nb.LineColor\u53c2\u6570\uff1a\u8bbe\u7f6e\u4e0b\u5212\u7ebf\u989c\u8272<br \/>\nc.LineWidth\u53c2\u6570\uff1a\u8bbe\u7f6e\u4e0b\u5212\u7ebf\u7c97\u7ec6<br \/>\nd.LineOffset\u53c2\u6570\uff1a\u8bbe\u7f6e\u4e0b\u5212\u7ebf\u504f\u79fb\u91cf<\/p>\n<pre class=\"lang:vbnet decode:true \">Imports System.ComponentModel\r\n\r\n&lt;ToolboxBitmap(GetType(System.Windows.Forms.TextBox))&gt;\r\nPublic Class TextBoxEx\r\n    Inherits System.Windows.Forms.TextBox\r\n\r\n    Protected _lineColor As Color = Color.Black\r\n    Protected _lineWidth As Integer = 1\r\n    Protected _lineOffset As Integer = 3\r\n    Protected _showLine As Boolean = False\r\n    Protected WithEvents Line As New Control()\r\n\r\n    &lt;DefaultValue(GetType(Color), \"Black\")&gt;\r\n    &lt;Description(\"\u4e0b\u5212\u7ebf\u989c\u8272\")&gt;\r\n    Public Property LineColor As Color\r\n        Get\r\n            Return _lineColor\r\n        End Get\r\n        Set(value As Color)\r\n            If _lineColor &lt;&gt; value Then\r\n                _lineColor = value\r\n                RaiseEvent LineColorChanged(Me, Nothing)\r\n            End If\r\n        End Set\r\n    End Property\r\n\r\n    &lt;DefaultValue(1)&gt;\r\n    &lt;Description(\"\u4e0b\u5212\u7ebf\u5bbd\u5ea6\")&gt;\r\n    Public Property LineWidth As Integer\r\n        Get\r\n            Return _lineWidth\r\n        End Get\r\n        Set(value As Integer)\r\n            If _lineWidth &lt;&gt; value Then\r\n                _lineWidth = value\r\n                RaiseEvent LineWidthChanged(Me, Nothing)\r\n            End If\r\n        End Set\r\n    End Property\r\n\r\n    &lt;DefaultValue(3)&gt;\r\n    &lt;Description(\"\u4e0b\u5212\u7ebf\u504f\u79fb\u91cf\")&gt;\r\n    Public Property LineOffset As Integer\r\n        Get\r\n            Return _lineOffset\r\n        End Get\r\n        Set(value As Integer)\r\n            If _lineOffset &lt;&gt; value Then\r\n                _lineOffset = value\r\n                RaiseEvent LineOffsetChanged(Me, Nothing)\r\n            End If\r\n        End Set\r\n    End Property\r\n\r\n    &lt;DefaultValue(False)&gt;\r\n    &lt;Description(\"\u6307\u793a\u63a7\u4ef6\u662f\u5426\u663e\u793a\u4e0b\u5212\u7ebf\")&gt;\r\n    Public Property ShowLine As Boolean\r\n        Get\r\n            Return _showLine\r\n        End Get\r\n        Set(value As Boolean)\r\n            _showLine = value\r\n            RaiseEvent ShowLineChanged(Me, Nothing)\r\n        End Set\r\n    End Property\r\n\r\n    ''' &lt;summary&gt;\r\n    ''' \u5728 TextBoxEx.LineColor \u5c5e\u6027\u503c\u53d1\u751f\u66f4\u6539\u65f6\u53d1\u751f\r\n    ''' &lt;\/summary&gt;\r\n    ''' &lt;param name=\"sender\"&gt;&lt;\/param&gt;\r\n    ''' &lt;param name=\"e\"&gt;&lt;\/param&gt;\r\n    ''' &lt;remarks&gt;&lt;\/remarks&gt;\r\n    Public Event LineColorChanged(ByVal sender As Object, e As EventArgs)\r\n\r\n    ''' &lt;summary&gt;\r\n    ''' \u5728 TextBoxEx.LineWidth \u5c5e\u6027\u503c\u53d1\u751f\u66f4\u6539\u65f6\u53d1\u751f\r\n    ''' &lt;\/summary&gt;\r\n    ''' &lt;param name=\"sender\"&gt;&lt;\/param&gt;\r\n    ''' &lt;param name=\"e\"&gt;&lt;\/param&gt;\r\n    ''' &lt;remarks&gt;&lt;\/remarks&gt;\r\n    Public Event LineWidthChanged(ByVal sender As Object, e As EventArgs)\r\n\r\n    ''' &lt;summary&gt;\r\n    ''' \u5728 TextBoxEx.ShowLine \u5c5e\u6027\u503c\u53d1\u751f\u66f4\u6539\u65f6\u53d1\u751f\r\n    ''' &lt;\/summary&gt;\r\n    ''' &lt;param name=\"sender\"&gt;&lt;\/param&gt;\r\n    ''' &lt;param name=\"e\"&gt;&lt;\/param&gt;\r\n    ''' &lt;remarks&gt;&lt;\/remarks&gt;\r\n    Public Event ShowLineChanged(ByVal sender As Object, e As EventArgs)\r\n    ''' &lt;summary&gt;\r\n    ''' \u5728 TextBoxEx.LineOffset \u5c5e\u6027\u503c\u53d1\u751f\u66f4\u6539\u65f6\u53d1\u751f\r\n    ''' &lt;\/summary&gt;\r\n    ''' &lt;param name=\"sender\"&gt;&lt;\/param&gt;\r\n    ''' &lt;param name=\"e\"&gt;&lt;\/param&gt;\r\n    ''' &lt;remarks&gt;&lt;\/remarks&gt;\r\n    Public Event LineOffsetChanged(ByVal sender As Object, e As EventArgs)\r\n\r\n    Public Sub onLineWidthChanged(ByVal sender As Object, e As EventArgs) Handles Me.LineWidthChanged, Me.LineOffsetChanged, Me.LineColorChanged\r\n        If Me.ShowLine Then\r\n            rePosLine()\r\n        End If\r\n    End Sub\r\n\r\n    Public Sub onShowLineChanged() Handles Me.ShowLineChanged\r\n        If Me.ShowLine Then\r\n            BorderStyle = BorderStyle.None\r\n            BackColor = Color.FromKnownColor(KnownColor.Control)\r\n            rePosLine()\r\n        Else\r\n            BorderStyle = BorderStyle.Fixed3D\r\n            BackColor = Color.FromKnownColor(KnownColor.Window)\r\n            If Not IsNothing(Line) Then\r\n                Line.Visible = False\r\n            End If\r\n        End If\r\n    End Sub\r\n\r\n    Protected Overrides Sub OnParentChanged(e As EventArgs)\r\n        MyBase.OnParentChanged(e)\r\n        If Me.ShowLine Then\r\n            rePosLine()\r\n        End If\r\n    End Sub\r\n\r\n    Protected Overrides Sub OnLocationChanged(e As EventArgs)\r\n        MyBase.OnLocationChanged(e)\r\n        If Me.ShowLine Then\r\n            rePosLine()\r\n        End If\r\n    End Sub\r\n\r\n    Protected Sub rePosLine()\r\n        If Not IsNothing(Me.Parent) Then\r\n            If Not Me.Parent.Controls.Contains(Line) Then\r\n                Me.Parent.Controls.Add(Line)\r\n            End If\r\n            Line.Width = Me.Width\r\n            Line.Height = Me.LineWidth\r\n            Line.BackColor = Me.LineColor\r\n            Line.Location = New Point(Me.Location.X, Me.Location.Y + Me.Height + Me.LineOffset)\r\n            Line.Visible = True\r\n            Line.BringToFront()\r\n        End If\r\n    End Sub\r\n\r\n    Protected Overrides Sub Dispose(disposing As Boolean)\r\n        MyBase.Dispose(disposing)\r\n        If disposing Then\r\n            If Not IsNothing(Line) Then\r\n                Line.Dispose()\r\n            End If\r\n        End If\r\n    End Sub\r\n\r\n    Protected Overrides Sub OnLayout(levent As LayoutEventArgs)\r\n        MyBase.OnLayout(levent)\r\n        If Me.ShowLine Then\r\n            rePosLine()\r\n        End If\r\n    End Sub\r\nEnd Class\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5b9e\u73b0\u529f\u80fd\uff1a a.ShowLine \u53c2\u6570\uff1a\u8bbe\u7f6e\u4e0b\u5212\u7ebf\u662f\u5426\u53ef\u89c1 b.LineColor\u53c2\u6570\uff1a\u8bbe\u7f6e\u4e0b\u5212\u7ebf\u989c\u8272 c.L &hellip; <a href=\"http:\/\/www.ilezhi.cn\/?p=100146\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u3010VB.NET\u3011\u81ea\u5b9a\u4e49TextBox\u7c7b\uff0c\u6dfb\u52a0\u663e\u793a\u4e0b\u5212\u7ebf\u5c5e\u6027<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,4],"tags":[66,24,64,45,107,29],"class_list":["post-100146","post","type-post","status-publish","format-standard","hentry","category-share","category-original","tag-microsoft","tag-vb-net","tag-visual-studio","tag-45","tag-107","tag-29"],"_links":{"self":[{"href":"http:\/\/www.ilezhi.cn\/index.php?rest_route=\/wp\/v2\/posts\/100146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.ilezhi.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.ilezhi.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.ilezhi.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.ilezhi.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=100146"}],"version-history":[{"count":0,"href":"http:\/\/www.ilezhi.cn\/index.php?rest_route=\/wp\/v2\/posts\/100146\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.ilezhi.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=100146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.ilezhi.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=100146"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.ilezhi.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=100146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}