Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Ari Slash en 19 Julio 2010, 20:43 pm



Título: detener evento .net
Publicado por: Ari Slash en 19 Julio 2010, 20:43 pm
Hola como

puedo detener un sub de un evento?
hace un tiempo vi que se usaba la instruccion handles pero la verdad no recuerdo

alguna idea?

gracias de antemano


a por cierto he intentado con exit sub, pero no funciona xD


Título: Re: detener evento .net
Publicado por: raul338 en 19 Julio 2010, 21:00 pm
Detener un evento? si es para dejar de que se produsca, usa RemoveHandler (se restaura con AddHandler :P)


Título: Re: detener evento .net
Publicado por: Ari Slash en 19 Julio 2010, 21:08 pm

este es mi sub de un binding navigator
pero no funciona , ves algun error?
la funcion camposvacios verifica cada texbox si esta vacio, si encuentra uno vacio devuelve true
Código
  1. Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
  2.        If camposvacios() Then
  3.            MsgBox("Hay campos vacios", MsgBoxStyle.Exclamation, "No guardado")
  4.            RemoveHandler BindingNavigatorAddNewItem.Click, AddressOf Me.BindingNavigatorAddNewItem_Click
  5.  
  6.        End If
  7.    End Sub


gracias
saludos


Título: Re: detener evento .net
Publicado por: raul338 en 19 Julio 2010, 21:39 pm
EMm.... no entiendo lo que quieres hacer, lo que haces en el codigo es que, si no esta valido el formulario, que nunca mas se pueda agregar un item!! :P

Si tienes mas codigo, con Exit sub te seria suficiente :)


Título: Re: detener evento .net
Publicado por: Ari Slash en 19 Julio 2010, 21:51 pm
xD

quiero que si el formulario no es valido que se aborte el agregar un item pero
que cuando este valido se pueda

exit sub no me funciona :(
el evento se ejecuta igual, viendo la ejecucion paso a paso entra en el if, ejecuta el exit sub, pero el evento continua igual xD

Código
  1. Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
  2.        If camposvacios() Then
  3.            MsgBox("Hay campos vacios", MsgBoxStyle.Exclamation, "No guardado")
  4.            exit sub
  5.  
  6.        End If
  7.    End Sub


Título: Re: detener evento .net
Publicado por: raul338 en 19 Julio 2010, 23:18 pm
Es raro :(

y no habra algun evento de validacion?


Título: Re: detener evento .net
Publicado por: Ari Slash en 19 Julio 2010, 23:36 pm
como evento de validacion? xD

te refieres a que sea otro evento el que valida?


Título: Re: detener evento .net
Publicado por: raul338 en 19 Julio 2010, 23:48 pm
Claro, antes de agregar un item, un evento que valide :P


Título: Re: detener evento .net
Publicado por: 43H4FH44H45H4CH49H56H45H en 20 Julio 2010, 05:42 am
quiero que si el formulario no es valido que se aborte el agregar un item pero
que cuando este valido se pueda

Se podria sobreescribir el evento, cambiarlo en el mismo proyecto (en el code generado) por otro o agregarle un evento de validación y demás, pero para lo que buscas no tiene mucho sentido, para hacerlo fácil fijate en esto:

Código
  1. If TextBox1.TextLength > 0 Then
  2.     Me.RegistroBindingSource.AddNew()
  3. Else
  4.     MessageBox.Show("vacio")
  5. End If

Create un boton personalizado en el BindingNavigator borra el BindingNavigatorAddNewItem y utiliza BindingSource para agregar un item si cumple los requisitos, en mi caso seria RegistroBindingSource puesto que mi BD en acces se llama registro.


Título: Re: detener evento .net
Publicado por: Ari Slash en 20 Julio 2010, 07:27 am
valla gracias

buena idea


gracias chicos me ha ayudado mucho


saludos


Título: Re: detener evento .net
Publicado por: piwi en 4 Agosto 2010, 07:50 am
Creo que llego tarde pero por si la moscas ..

1º Declara una variable de clase

Private BotonNuevo As ToolStripItem

2º En el load del formularo

Me.BotonNuevo = LICENCIASBindingNavigator.AddItem

3º En el evento ItemClicked del BindingNavigator

If e.ClickedItem Is Me.BotonNuevo Then
          If camposvacios() Then           
             MsgBox("Hay campos vacios", MsgBoxStyle.Exclamation, "No guardado")           
             Me.BindingNavigator.AddItem = Nothing
          Else
                Me.BindingNavigator.AddItem = BotonNuevo
          End If
End If




Título: Re: detener evento .net
Publicado por: Ari Slash en 5 Agosto 2010, 05:25 am
no es tarde y mucha gracias por el comentario
es la opcion que habia encontrado
y aqui me la aclaras


saludos


Título: Re: detener evento .net
Publicado por: piwi en 5 Agosto 2010, 14:30 pm
No hay de que, para una vez que respondo en vez de preguntar.  :D