Cómo insertar la letra "N" seguida de 4 dígitos. El usuario ingresa los 4 dígitos en el cuadro de texto

NOTA: Intenté usar el método concat (), el método de unión e incluso intenté insertar solo texto (que resultó editable) pero ninguno de ellos funcionó como quería. Estaba pensando si el método de subcadena funcionaría, pero solo tengo una idea básica de cómo funciona la subcadena. Quiero que la letra "N" se inserte en el cuadro de texto cuando se cargue el formulario y cuando el usuario ingrese 4 dígitos (OrderNo2.text) que deben unirse para que se puedan guardar juntos cuando haga clic en el botón Guardar.

Por favor ayuden chicos. Gracias

Private Sub btnAddOrder_Click(ByVal sender As System.Object, ByVal e
  As System.EventArgs) Handles btnAddOrder.Click



isNewRow = True
        Dim newRow As DataRow = dsOrders.Tables("Orders").NewRow

        Try
            If txtOrderNo2.Text.Length = 5 Then
                newRow.Item("OrderNo") = txtOrderNo2.Text
                If cbo_Product.SelectedIndex <> -1 Then
                    newRow.Item("Product") = cbo_Product.Text
                    newRow.Item("Price") = txtPrice2.Text
                    If txtQuantity.Text <> "" Then
                        newRow.Item("Quantity") = txtQuantity.Text
                        newRow.Item("CustomerNo") = txtCustomerNo2.Text
                        dsOrders.Tables("Orders").Rows.Add(newRow)
                        'determine row index of new row
                        rowIndex = dsOrders.Tables("Orders").Rows.Count - 1
                        'save changes back to the database
                        daOrders.Update(dsOrders, "Orders")

                    Else
                        MessageBox.Show("Please enter the quantity", "Missing Quantity", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    End If
                Else
                    MessageBox.Show("Please choose the product", "Missing Price", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                End If
            Else
                MessageBox.Show("Order Number must be 5 digits long!", "Missing Order Number", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub

preguntado el 08 de noviembre de 11 a las 08:11

Si la N está en el TextBox, será editable. Le sugiero que tenga la "N" en una etiqueta a la izquierda del TextBox, luego valide el texto como un número de 4 dígitos y realice la concatenación más tarde. -

Gracias por tu respuesta. No puedo hacerlo de esa manera porque es el número de pedido y estoy verificando la longitud de la cadena en el cuadro de texto y guardándola en la base de datos.

puede, podría hacer 'newRow.Item ("OrderNo") = String.Format ("N {0}", txtOrderNo2.Text)' -

2 Respuestas

Intente permitir solo dígitos en el cuadro de texto con una longitud máxima de 4. Luego, si el usuario hace clic en el botón enviar, obtenga el valor de la entrada y coloque la N delante de él. Siempre tendrás una longitud de 4 + tu carácter ("N") es 5.

De esa forma deberías poder solucionarlo.

También puede intentar usar una expresión regular. para ver si contiene la N y los números del 0 al 9. solo si comienza con el carácter N seguido de 4 caracteres numéricos será una entrada válida.

Esta sería tu expresión regular entonces.

^ (N? [0-9] {4}) $

Espero que esto pueda ser de alguna utilidad para ti

respondido 08 nov., 11:15

Uso un MaskedTextBox en lugar de un regular TextBox. A continuación, puede configurar el Mask propiedad a "N0000", que solo permitirá al usuario ingresar 4 dígitos después de la 'N'y no permitirá que el usuario edite el 'N'. La Text La propiedad le dará el texto mostrado, incluido el 'N'.

respondido 08 nov., 11:18

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.