Hola a todos. Tengo un formulario con un label y un grid. El foco siempre lo
tiene el grid, pero cuando escribes algo aparece en el label (lo he puesto
en el evento KeyPress de grid). El problema es que cuando pulso la tecla
Back para borrar, me escribe un cuadrado, asi que utilizo la funcion remove
para borrar los caracteres. Sin embargo me da un error que dice: "Index and
count must refer to a location within the string. Parameter name: count"
Este es el codigo, el codigo esta comentado con algunas dudas.
Private Sub dtgvBusquedas_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles dtgvBusquedas.KeyPress
lblTexto.Text &= e.KeyChar 'Guardo en el label el caracter que
introduzco
Dim charCaracter As Char = e.KeyChar.ToString.Trim 'Me guardo el
mismo caracter en una variables
If Keys.Enter.ToString.Trim = charCaracter Then
Me.dtgvBusquedas.Focus() 'Si pulso Enter, el foco se queda en el
Grid
End If
If Keys.F2.ToString.Trim = charCaracter Then ' Si pulso F2, realiza
otra funcion
If (Me.tscCampos.ComboBox.SelectedIndex =
Me.tscCampos.ComboBox.Items.Count - 1) Then
Me.tscCampos.ComboBox.SelectedItem =
Me.tscCampos.ComboBox.Items(0)
Else
Me.tscCampos.ComboBox.SelectedItem =
Me.tscCampos.ComboBox.Items(Me.tscCampos.ComboBox.SelectedIndex + 1)
End If
End If
If Keys.Back.ToString.Trim = charCaracter Then 'Si pulso Back, debe
borrar el caracter
'El principal error que me da es que aqui nunca entra. Para que
entre tengo que hacerlo con el raton
lblTexto.Text = lblTexto.Text.Remove(lblTexto.Text.Length - 1,
2)
'Pongo que borre dos caracteres para que me borre el cuadrado
que escribe el Back y el caracter que realmente quiero borrar, y es ahi
donde da el error descrito anteriormente
End If
End Sub
Leer las respuestas