Visual Basic.NET - MessageBox se mete en un loop

 
Vista:
sin imagen de perfil
Val: 29
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

MessageBox se mete en un loop

Publicado por apacheco (98 intervenciones) el 03/06/2011 18:23:29
Estoy pasando de VB6 a VB 2010 una aplicacion de recogida de la manteleria utilizada en resturantes para lavarla y devolverla limpia.

Esto genera unos tickes con los datos del cliente y un grid (grilla, rejilla...) con los distintos articulos.

Cuando voy a introducir un nuevo ticket, lo primero que hago es comprobar si he grabado el ticket anterior o no.

En caso de que haya un tickect sin grabar PREGUNTO SI QUIERE GRABARLO O NO ....... y se mete en un bucle (Loop) tanto si contesto SI como si contesto NO.

Es decir muestra el mensaje, me permite contestar y vuelve a ejecutar el Sub cmbNomCli_GotFocus, sin ejecutar las opciones Si o No


El codigo es el siguiente:

Private Sub cmbNomCli_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbNomCli.GotFocus

If dgvArticulos.Rows.Count > 1 Then ' Si hay articulos pendientes
Ver_Pendiente_De_Grabar()
End If

...........

End Sub


Private Sub Ver_Pendiente_De_Grabar()

If MessageBox.Show("EXISTE UNA RECOGIDA PENDIENTE DE" & vbCrLf & vbCrLf & _
"GRABAR. SI CONTINÚA SE PERDERÁ" & vbCrLf & vbCrLf & _
" ¿DESEA GRABARLA (Sí/No)?", _
"PROCESO DE RECOGIDAS", _
MessageBoxButtons.YesNo, _
MessageBoxIcon.Warning, _
MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.Yes Then

AddHandler btGrabar.Click, AddressOf btGrabar_Click ' Sub de Grabar el ticket
Else
dgvArticulos.Rows.Clear() ' Inicializo el Grid
End If

........

End Sub

Debe ser una tonteria ...... pero no se por donde atacarla

MUCHAS GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

MessageBox se mete en un loop

Publicado por Stivi (36 intervenciones) el 06/07/2011 12:38:18
Buenas,
No hagas validaciones en los eventos de entrada o salida del foco, esto te puede provocar bucles, utiliza los eventos de validacion. Y para ejecutar el handler de un botón no hace falta añadirlo cada vez, con llamar al metodo ya vale.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar