2010-05-05 28 views

Respuesta

103

Establezca DropDownStyle propiedad del cuadro combinado en DropDownList. Esto permitirá que solo se seleccionen elementos en la lista y no permitirá ninguna entrada de usuario de forma libre.

0

Establezca el atributo ReadOnly en verdadero.

O si desea que aparezca el cuadro combinado y muestre la lista de valores "disponibles", podría manejar el evento ValueChanged y forzarlo de nuevo a su valor inmutable.

2

Ver a un usuario golpear a un control que anula sus decisiones es una visión triste. Establezca la propiedad Enabled del control en False. Si no te gusta, cambia su propiedad de Elementos para que solo se pueda seleccionar un elemento.

1

Make Combobox Readonly. En este caso, el usuario no puede ingresar su texto o no puede cambiar los datos.

PASOS:

  1. seleccione su cuadro combinado.
  2. Vaya a su cuadro de propiedades y seleccione Estilodesplazamiento y cambie su valor a Lista desplegable.
0

esta es la manera más sencilla, pero a mí me funciona con un nombre ComboBox1

solución en 3 pasos básicos:

paso 1.

Declarar una variable al principio de su formulario que contendrá el valor de texto original de ComboBox. Ejemplo:

 Dim xCurrentTextValue as string 

paso 2.

crear la clave del evento ComboBox1 abajo y asignar a la variable xCurrentTextValue el texto actual del cuadro combinado si se pulsa cualquier tecla que no sea diferrent "ENTER" el valor de texto de cuadro combinado mantiene el valor texto original

Ejemplo:

Private Sub ComboBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles ComboBox1.KeyDown 

    xCurrentTextValue = ComboBox1.Text 

    If e.KeyCode <> Keys.Enter Then 
     Me.ComboBox1.Text = xCmbItem 
    End If 

End Sub 

paso 3.

Validar la cuando el texto combinado se cambia, si len (xcurrenttextvalue)> 0 o es diferente a nada, entonces la ComboBox1 toma el valor de la variable xcurrenttextvalue

Private Sub ComboBox1_TextChanged(sender As Object, e As EventArgs) Handles ComboBox1.TextChanged 
    If Len(xCurrentTextValue) > 0 Then 
     Me.ComboBox1.Text = xCurrentTextValue 

    End If 
End Sub 

========== ============================================= eso es es,

Originalmente solo probé el paso número 2, pero tengo problemas cuando presiona la tecla DEL y la flecha ABAJO, también por alguna razón no validó el evento de tecla salvo que muestre cualquier cuadro de mensaje


! Lo sentimos, esta es una corrección en el paso número 2, se me olvidó cambiar la variable xCmbItem a xCurrentTextValue, xCmbItem que se utilizó para mi uso personal

ESTE ES EL CORRECTO CÓDIGO

xCurrentTextValue = ComboBox1.Text 

If e.KeyCode <> Keys.Enter Then 
    Me.ComboBox1.Text = xCurrentTextValue 
End If 
2

Use KeyPressEventArgs,

Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress 
    e.Handled = True 
End Sub 
-1
Private Sub ComboBox4_KeyPress(sender As Object, e As KeyPressEventArgs) Handles ComboBox4.KeyPress 
    e.keyChar = string.empty 
End Sub 
+0

e.keychar = string.empty – user6051640

+1

Por favor, [editar] con más información. Las respuestas de solo código y "prueba esto" están [desaconsejadas] (// meta.stackexchange.com/questions/196187), ya que no contienen contenido que se pueda buscar y no explican por qué alguien debe "probar esto". Hacemos un esfuerzo aquí para ser un recurso para el conocimiento. – Mogsdad

0

---- en forma de Declaración nivel de veriable CBX ---

Dim cbx as string 

Private Sub comboBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comboBox1.Enter 
    cbx = Me.comboBox1.Text 
End Sub 

Private Sub comboBox1_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comboBox1.Leave 
    Me.comboBox1.Text = cbx 
End Sub 
0

que corregir las Gracias Formato-

---- en la Declaración nivel de forma de CBX veriable --- tenue como CBX cadena

Private Sub comboBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comboBox1.Enter 
    cbx = Me.comboBox1.Text End Sub 

Private Sub comboBox1_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles comboBox1.Leave 
    Me.comboBox1.Text = cbx End Sub 
+0

Tiene la intención de editar la respuesta, no publicar una nueva respuesta. Mire el enlace [edit] (http://stackoverflow.com/posts/43222191/edit) debajo de su respuesta. Debe eliminar esta respuesta y editar la anterior. – Bugs

-1

Creo que este es el código correcto y más simple para este tipo de problema

Private Sub CourseName_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles CourseName.KeyPress 
    e.Handled = True 

End Sub 
+0

Por favor explique su código –

Cuestiones relacionadas