Hur sätter man keycode till inget så att den inte skriver till textbox. Oj förlåt, hade för mig att det var e.Cancel som används. Jo 9 av 10 fall löser jag det men om inte så vänder jag mig till diskutionsforum. Det låter lite som om du vill sätta ReadOnly till true? Det råkar inte vara så att du använder .NET 1.1? Där finns inte SupressKeyPress med.e.KeyCode = 0 ?
Ex:
Private Sub txtInput_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtInput.KeyDown
e.KeyCode = 0
End SubSv: e.KeyCode = 0 ?
<code>
e.SuppressKeyPress = True
</code>
Förresten, har du inte IntelliSense? Blir lättare att lista ut saker på egen hand då.
/MickeSv:e.KeyCode = 0 ?
'SuppressKeyPress' is not a member of 'System.Windows.Forms.KeyEventArgs'.
Har letat igenom allt på e. och hittar inget som hjälper.Sv: e.KeyCode = 0 ?
Eller vill du undvika att specifika tecken matas in? Då kan du använda dig av KeyPress istället för keydown
och i den sätta "e.Handled = True" för att refusera en viss teckenuppsättning eller alla tecken.Sv: e.KeyCode = 0 ?
Och vad jag kan se så finns där inget annat man kan använda heller.
En fullösning skulle kunna vara att sätta textboxen till read only när önskad tangent är nedtryckt och ta bort den för alla andra.
<code>
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.A Then
TextBox1.ReadOnly = True
Else
TextBox1.ReadOnly = False
End If
End Sub
</code>
EDIT: Johans förslag fungerar ju perfekt! Trodde att jag provade KeyPress också utan att få det till att fungera...
/Micke