Foros del Web » Programación para mayores de 30 ;) » .NET »

VB 2005 - Evitar saltos raros en el codigo

Estas en el tema de VB 2005 - Evitar saltos raros en el codigo en el foro de .NET en Foros del Web. Hola amigos!!! tengo un botón "Salir" para salir de la aplicación o programa con este codigo Código: Private Sub btSalir_Click(ByVal sender As System.Object, ByVal e ...
  #1 (permalink)  
Antiguo 22/10/2008, 02:24
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
VB 2005 - Evitar saltos raros en el codigo

Hola amigos!!!

tengo un botón "Salir" para salir de la aplicación o programa con este codigo
Código:
    Private Sub btSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSalir.Click
        Dim respuesta As String = MsgBox("¿Está usted seguro de salir?", MsgBoxStyle.YesNo, titleName)
        If respuesta = 6 Then
            Me.Close()
        End If
    End Sub
Y lo curioso es que al hacer la depuración paso a paso, en la linea de Me.close(), me lleva a este evento
Código:
    Private Sub cbIPBascula_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbIPBascula.SelectedIndexChanged
        Me.lblDescripBascula.Text = Me.DbDataSet.IPBasculas.FindById(Me.cbIPBascula.SelectedValue).descripcion
    End Sub
y acto seguido me lanza el siguiente codigo de error:

No se controló NullReferenceException.

¿Sabéis porqué hay estos saltos de código? ¿Cómo se pueden evitar, si es que se puede?

Gracias!!!
  #2 (permalink)  
Antiguo 22/10/2008, 06:47
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: VB 2005 - Evitar saltos raros en el codigo

No son saltos extraños, lo que pasa es cuando cierras tu formulario tienen que hacer un dispose de tus controles y al llegar al combobox lanza el evento de cambio de indice porq esta eliminando items de la lista es solo eso.

antes del close haz

RemoveHandler comboBox1.SelectedIndexChande, AddressOf Me.cbIPBascula_SelectedIndexChanged

solo pon eso antes del me.close

y cuentanos que paso vale.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 24/10/2008, 01:16
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: VB 2005 - Evitar saltos raros en el codigo

Como iva a fallar el codigo!!!

Bueno, estaba mal escrito pero lo solucioné. Os Pongo el codigo

Código:
    Private Sub btSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSalir.Click
        Dim respuesta As String = MsgBox("¿Está usted seguro de salir?", MsgBoxStyle.YesNo, titleName)
        If respuesta = 6 Then
            RemoveHandler cbIPBascula.SelectedIndexChanged, AddressOf Me.cbIPBascula_SelectedIndexChanged
            Me.Close()
        End If
    End Sub
Perfecto muchisimas gracias!!!

Lo que había echo era ponerlo en un try-catch-finally y me lo cerraba igual
Código:
            Try
                Me.Close()
            Catch ex As Exception
            Finally
                Me.Close()
            End Try
Pero siempre hay soluciones mejores, muchisimas gracias!!!

Pero me queda una pregunta, si tubiera un formulario con un monton de eventos de estos, tendría que poner linea a linea para que no me saltara? o hay algo aun mejor?

Gracias
  #4 (permalink)  
Antiguo 24/10/2008, 06:30
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: VB 2005 - Evitar saltos raros en el codigo

no , en vez hacer el formulario.close haz un Application.exit si es que cierras la aplicación si no siempre puedes hacer loops sobre los controles y remover todos los handlers programaticamente
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 26/10/2008, 15:26
 
Fecha de Ingreso: septiembre-2008
Mensajes: 68
Antigüedad: 15 años, 7 meses
Puntos: 0
Sonrisa Respuesta: VB 2005 - Evitar saltos raros en el codigo

saludos.

Bueno a mi parecer el fin de este tema es preguntar al usuario si esta seguro de salir de la aplicación o de un formulario. Saqué algunas conclusines inferidas y creo que bloqueaste el boton cerrar del formulario estableciendo la propiedad "ControlBox" en false del formulario. para ello, colocaste un boton para cerrar y de ahi sale la pregunta de confirmación. si eso es cierto, entonces que pasaria si el usuario final preciona "alt + F4", ¿El programa hace la pregunta antes de cerrar el formulario?.

Bueno si mi inferencia es correcta te recomendaria que uses el método.

Código:
Private Sub NombreDeTuFormulario_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        Dim aviso As DialogResult = MessageBox.Show("¿Está seguro de salir?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Information)

            If aviso = Windows.Forms.DialogResult.No Then
                e.Cancel = True
            Else
                'Código para hacer otros procesos antes de cerrar este formulario
            End If
End Sub
Con este código le aparecerá al usuario final si preciona cerrar o "alt+f4" el mensaje de confimación inclusive si se hace el llamado a Me.Close() en otro boton.

Bueno espero haber ayudado un poquito con esta pequeña colaboración.

ATTE RealTMegalix
  #6 (permalink)  
Antiguo 27/10/2008, 02:13
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: VB 2005 - Evitar saltos raros en el codigo

No habia probado con alt+F4, pero tendré en cuenta tu opción. aunque normalmente un usuario normal y corriente no usa el ATL+F4. Somos los usuarios avanzados los que sabemos dichas combinaciones de teclas, por lo que si presiona alt+F4 es pq quiere salir de forma rápida y si no pregunta nada mejor, no?
  #7 (permalink)  
Antiguo 27/10/2008, 08:48
 
Fecha de Ingreso: marzo-2007
Mensajes: 538
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: VB 2005 - Evitar saltos raros en el codigo

en todo caso el application.exit tb hace que me salte al evento SelectedIndexChanged, asi que creo que me quedaré con la primera solucion que me habeis propuesto.

Gracias!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:33.