elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 08:29  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  Pasar el valor de una variable de un formulario a otro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Pasar el valor de una variable de un formulario a otro  (Leído 2,903 veces)
proteus8

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Pasar el valor de una variable de un formulario a otro
« en: 18 Enero 2011, 17:27 »

Hola a todos, tengo el siguiente problema, tengo un formulario que es un login de usuario cuando el usuario se autentifica este formulario se cierra y me abre un formulario2 hasta aquí todo bien , el problema es que necesito pasar el valor que tengo en una variable en el formulario 1 al formulario 2 pero no me toma a que se debe esto.
codigo de mi primer formulario
Código
Imports System
Imports System.Data
Imports System.IO
Imports System.Data.SQLite
Public Class Form1
   Dim cnn As New SQLiteConnection
   Public consulta As String
   Dim frm As Form2
   Public ZONA As String
 
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       cnn = New SQLiteConnection("Data Source=\BACKUP\BD\CLAS_MOBILE.db;Version=3;")
       Try
           If (Not File.Exists("\BACKUP\BD\CLAS_MOBILE.db")) Then
               CrearTablas(cnn)
           End If
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Error")
       End Try
   End Sub
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       cnn.Open()
       If USUARIO.Text = "" Or PASSWORD.Text = "" Then
           MessageBox.Show("Debe Ingresar Usuario y Contraseña")
       Else
           Try
               If (File.Exists("\BACKUP\BD\CLAS_MOBILE.db")) Then
                   consulta = String.Format("SELECT count(USU_USUARIO) as cuenta, USU_ZONA FROM CMB_USUARIO WHERE USU_USUARIO='{0}'", USUARIO.Text)
                   Dim Ada As New SQLiteDataAdapter()
                   Dim Sqlstr As New SQLiteCommand(consulta, cnn)
                   Dim dr As SQLiteDataReader = Sqlstr.ExecuteReader(CommandBehavior.CloseConnection)
                   While dr.Read
                       Dim value As Object = dr.Item("cuenta")
                       Dim value2 As Object = dr.Item("USU_ZONA")
                       ZONA = CStr(value2) ' ESTA ES LA VARIABLE QUE QUIERO PASAR
                       If value = 1 Then
' EN ESTA PARTE UTILIZO UN MODULO PARA CERRAR UN FORM Y ABRIR OTRO
                           Me.Close()
                           Me.Dispose()
                           Me.DialogResult = Windows.Forms.DialogResult.OK
 
                       Else
                           MessageBox.Show("Usuario o Contraseña Incorrectos...!!!", "Error")
                       End If
 
 
                   End While
                   dr.Close()
               Else
                   MessageBox.Show("No existe base de datos", "Error")
               End If
           Catch ex As Exception
               MessageBox.Show(ex.Message, "Error")
           End Try
       End If
   End Sub
   Private Sub CrearTablas(ByVal Cnn As SQLiteConnection)
       Using _Cmd As SQLiteCommand = Cnn.CreateCommand
           _Cmd.CommandText = "CREATE TABLE CMB_USUARIO (USU_USUARIO VARCHAR (8) NOT NULL,USU_PASS VARCHAR (8) NOT NULL,USU_ZONA VARCHAR (25) NOT NULL)"
           _Cmd.ExecuteNonQuery()
           _Cmd.CommandText = "INSERT INTO CMB_USUARIO VALUES('usu01','123456','peru')"
           _Cmd.ExecuteNonQuery()
       End Using
   End Sub
End Class
 

este es el codigo del modulo para cerrar un fomulario y pasar al fomulario 2
Código
Module Module1
   Sub Main()
       Dim vResultado As New Form1
       If vResultado.ShowDialog() = DialogResult.OK Then
           Dim frm As New Form2
           frm.ShowDialog()
       End If
   End Sub
End Module
 

Este es elcodigo de mi segundo formulario donde se supone que rescato la variable del primer formulario:
Código
Public Class Form2
   Dim zona_frm2 = Form1.ZONA ' AQUI SE SUPONE QUE RESCATO LA VARIABLE
   Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Me.TextBox1.Text = zona_frm2 ' quiero que lo de la variable lo coloque en este texbox, pero no pasa nada :-S
       Form1.Close()
   End Sub
 
   Private Sub Label1_ParentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.ParentChanged
       Label1.Text = FormatDateTime(Now(), DateFormat.GeneralDate)
   End Sub
 
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Me.Hide()
       Dim frm2 As New Form3
       frm2.ShowDialog()
 
   End Sub
End Class
 
Por favor ayuda...
desde ya muchas gracias.

PD: Gracias a IT que me ayudo hacer el codigo, para la conexion con SQLite


En línea
.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #1 en: 18 Enero 2011, 17:49 »

Bueno la verdad veo por demas el module, el codigo en si esta bien solo para cerrar hacemos esto
Código:
Form2.show()
me.close()
Y ya con eso deberia funcionar bien tu codigo, segun a mi parecer es porque recreas todo el Form1 y vacia la variable ZONA.


En línea

proteus8

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #2 en: 18 Enero 2011, 18:36 »

.mokk.  muchas gracias por tu respuesta. con respecto al cierre de formulario: cuando coloco este codigo:
Código
Form2.show()
me.close()
 
me cierra toda la aplicacion, por eso lo hago con el modulo.
Sobre lo que me dices de la variable no entiendo eso de :
"recreas todo el Form1 y vacia la variable ZONA."   :-S . aque te refieres o mejor dicho como deberia arreglarlo.
En línea
Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #3 en: 18 Enero 2011, 19:25 »

Para lo de q no se cierre toda la aplicacion es porq tendras q tener un form principal, q si no lo usaras lo ocultas simplemente, y para indicar cual es el form principal lo haces en las opciones del proyecto, no recuerdo bien donde
En línea
.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #4 en: 18 Enero 2011, 19:54 »

Ok mira hay dos formas para que no se cierre te lo mostrare primero en codigo:

Código
'Para "cerrar" Form1
Me.hide()
Form2.Show()
 

Luego en el codigo de cuando se va a cerrar o se esta cerrando el Form2(Suponiendo que este seria el Form Principal) colocariamos este codigo "End" quedando asi:

Código
  Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
       End
   End Sub

La segunda manera es ir aqui:


Y marcar lo que dice "Al cerrar el ultimo formulario", haciendo esto ya podras hacer lo que te dije al principio de
Código
Form2.show()
me.Close()

P.D. Un Consejo al utilizar variables es mas facil si las haces en un modulo, osea lo de Public ZONA as String colocarlo en la clase o mas bien en lo de Form1 siempre tendras que escribir Form1.ZONA lo cual seria molesto a mi parecer seria mejor poner
Public ZONA as String, ponerlo dentro del modulo asi lo llamarias de donde sea como ZONA. Bueno esto es solo un consejo ^^ Suerte
En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #5 en: 18 Enero 2011, 20:01 »

Teoría :D (nada nuevo)
Cada formulario que creas es una clase que hereda de form, y como tal tiene un constructor y la posibilidad de agregarle cuantos quieras.

Solución:
Agrega otro constructor al formulario que reciba el valor que le quieres pasar :P

Saludos
« Última modificación: 18 Enero 2011, 20:05 por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

.::IT::.

Desconectado Desconectado

Mensajes: 115



Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #6 en: 18 Enero 2011, 20:19 »

Yo pondria el form2 como principal y en el evento load pondria:


Código
if(Form1.ShowDialog==DialogResul.OK)
{
      this.variable=Form1.propiedad;
      Form1.Close();
}
« Última modificación: 18 Enero 2011, 20:22 por .::IT::. » En línea

Simplemente .::IT::.
proteus8

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #7 en: 18 Enero 2011, 20:22 »

perdon perdon señores pero se me olvido comentar que es una aplicacion para un dispostivo movil (Captor de datos skorpio datalogic con windows ce), al parcer en estos proyectos no aprace la opcion de cerrar  "Al cerrar el ultimo formulario"
Muchisimas gracias a todos por ayudarme.

PD:Novlucker  no entindo eso de un contructor, me podrias explicar por favor, soy novato en esto de vb.net, gracias.
En línea
.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #8 en: 18 Enero 2011, 20:45 »

perdon perdon señores pero se me olvido comentar que es una aplicacion para un dispostivo movil (Captor de datos skorpio datalogic con windows ce), al parcer en estos proyectos no aprace la opcion de cerrar  "Al cerrar el ultimo formulario"
Muchisimas gracias a todos por ayudarme.

PD:Novlucker  no entindo eso de un contructor, me podrias explicar por favor, soy novato en esto de vb.net, gracias.

la verdad nunca he programado para dispositivos moviles con NET, solo en Java no sabria decirte si es lo mismo o no, aunque en teoria pienso yo que seria casi igual a VB.NET, bueno si pudieses dejar tu proyecto podriamos ayudarte mejor bueno para mi porque nose muy bien sobre el tema de NET en moviles jeje  :P
En línea

proteus8

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #9 en: 19 Enero 2011, 14:37 »

gracias a todos por sus respuestas, lo cel cierre del proyecto lo deje como dice .mokk. , oculte uno y abri el otro, pero lo que no logro aun es el paso de las variables de un formulario a otro.
subi mi projecto a esta direccion, aver si me pueden ayudar.

http://ftp://200.111.163.90/
usuario: invitado
contaseña: invitado
En línea
Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #10 en: 19 Enero 2011, 15:08 »

PD:Novlucker  no entindo eso de un contructor, me podrias explicar por favor, soy novato en esto de vb.net, gracias.

http://www.elguille.info/NET/VB/constructores.htm

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #11 en: 19 Enero 2011, 17:01 »

usa propiedades
En línea
.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #12 en: 19 Enero 2011, 17:39 »

gracias a todos por sus respuestas, lo cel cierre del proyecto lo deje como dice .mokk. , oculte uno y abri el otro, pero lo que no logro aun es el paso de las variables de un formulario a otro.
subi mi projecto a esta direccion, aver si me pueden ayudar.

http://ftp://200.111.163.90/
usuario: invitado
contaseña: invitado


He intentado y luego de colocar los datos, no sale nada.

Error:   Desconectado del servidor: ECONNABORTED - Connection aborted
Error:   Error al recuperar el listado del directorio
En línea

proteus8

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #13 en: 19 Enero 2011, 18:53 »

He intentado y luego de colocar los datos, no sale nada.

Error:   Desconectado del servidor: ECONNABORTED - Connection aborted
Error:   Error al recuperar el listado del directorio
perdon pero escribi mal la direccion FTP ahora si que si.
ftp://200.111.163.90
Usuario:invitado
Contraseña:invitado
En línea
.mokk.

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Pasar el valor de una variable de un formulario a otro
« Respuesta #14 en: 19 Enero 2011, 22:05 »

No el problema no es ese, si loguea pero no me muestra ningun archivo ni nada
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines