写了一个用户控件,可以达到复制和输入的控制。
Public Class maxtextbox
Inherits System.Windows.Forms.TextBox
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
'UserControl 重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意:以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
End Sub
#End Region
Private h As Integer
Private m_max As Integer = 10
Public Property mlength() As Integer
Get
Return m_max
End Get
Set(ByVal Value As Integer)
If Value >= 1 Then
m_max = Value
End If
End Set
End Property
Public Function checkboolean() As Boolean
Dim count As Integer = System.Text.Encoding.Default.GetByteCount(Me.Text)
If count >= 10 Then
h = Me.Text.Length
Return True
Else
Return False
End If
End Function
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Dim KeyAsc As Integer = m.WParam.ToInt32
Select Case m.Msg
Case &H102 '按键
If checkboolean() Then
Me.MaxLength = h
Else
Me.MaxLength = m_max
End If
Case &H302 '复制
If checkboolean() Then
Return
End If
End Select
MyBase.WndProc(m)
End Sub
End Class
-----------------------------另外:还有了,wudiccj(软件黄牛) 兄,以后不要说什么“没有闵峰不行”之类的话了,因为看了真的很惭愧。因为不是很忙,所以偷着来这里看,等以后忙了,估计会来的少些。最主要的是我还没有那么高的水平,真的,这不是谦虚,我自己了解我自己。希望我们都可以在这里互相帮助相互学习!加油哦!楼主!
注意:这里以10来模拟了最大的输入数字,也就是98
Public Function checkboolean() As Boolean
Dim count As Integer = System.Text.Encoding.Default.GetByteCount(Me.TextBox1.Text)
If count >= 10 Then
m = Me.TextBox1.Text.Length
Return True
Else
Return False
End If
End Function
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If checkboolean() Then
Me.TextBox1.MaxLength = m
Else
Me.TextBox1.MaxLength = 10
End If
End Sub