23-10-13, 02:12 AM
و عليكم السلام و رحمة الله
جرب هذا الكود أولا ضع تاكست بوكس واحد و واحد تايمر و شاك بوكس على الفورم + اترك الأسماء الإفتراضية كما هي
ثم ضع هذا الكود
بالتوفيق
كود :
Private passKey As String = String.Empty
Private ignoreKeys As New List(Of Keys) From {Keys.Left, Keys.Up, Keys.PageUp, Keys.Home, Keys.Space}
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim emptyMenu As New ContextMenu
TextBox1.ContextMenu = emptyMenu
Timer1.Interval = 1000
Timer1.Stop()
End Sub
Private Sub TextBox1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles TextBox1.PreviewKeyDown
If e.KeyData = Keys.Tab Then
e.IsInputKey = True
End If
End Sub
Private Sub TextBox1_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseUp
TextBox1.SelectionStart = TextBox1.TextLength
End Sub
Private Sub TextBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
Timer1.Stop()
If ignoreKeys.Contains(e.KeyCode) OrElse e.Control OrElse e.KeyData = Keys.Tab Then
e.SuppressKeyPress = True
Return
End If
End Sub
Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
e.Handled = True
If e.KeyChar = ChrW(Keys.Escape) Then
passKey = String.Empty
ElseIf e.KeyChar = ChrW(Keys.Back) Then
If passKey.Length = 1 Then
passKey = String.Empty
ElseIf passKey.Length > 1 Then
passKey = passKey.Substring(0, passKey.Length - 1)
Else
Return
End If
ElseIf e.KeyChar = ChrW(Keys.Return) Then
HideAllKeys()
MessageBox.Show(passKey)
Return
Else
passKey &= e.KeyChar.ToString
End If
If passKey.Length = 0 Then
TextBox1.Text = ""
ElseIf passKey.Length = 1 Then
TextBox1.Text = passKey
Else
TextBox1.Text = New String("*"c, passKey.Length - 1) & passKey(passKey.Length - 1)
End If
TextBox1.SelectionStart = TextBox1.TextLength
If passKey.Length > 0 Then
Timer1.Start()
End If
End Sub
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
Timer1.Stop()
HideAllKeys()
End Sub
Private Sub HideAllKeys()
TextBox1.Text = New String("*"c, passKey.Length)
TextBox1.SelectionStart = TextBox1.TextLength
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then
TextBox1.Text = passKey
Else
HideAllKeys()
End If
End Sub