![]() |
| |||
| A ver si os pasa esto y sabeis como se puede solucionar que me esta volviendo loco si pongo en un boton esto funciona perfectamente: Dim frm As Form = form1 If frm.ShowDialog = DialogResult.OK Then end if si pongo en el mismo boton esto: Dim frm As Form = frz If frm.ShowDialog = DialogResult.OK Then end if donde frz es una variable publica o un parámetro pasado al form. (Pongo en un modulo Public frz as form = form1) La primera vez que pulso el botón funciona, la segunda casca. -- /\_ ( / (() //) | \\ ,,;;'\ __ _( )m=(((((((((((((================-------- /' ' '()/~' '.(, | ,;( )|| | ~ ,;' \ /-(.;, ) ) / ) / // CID || )_\ )_\ Por necesidad batallo, y una vez puesto en la silla se va ensanchando Castilla al paso de mi caballo" |
| | ||||
| ||||
| |
| |||
| Perdón se me olvido poner después del endif en los 2 casos frm.close frm=nothing "Cid" <martinms95***hotmail.com> escribió en el mensaje de noticias:uKBLnugIIHA.484***TK2MSFTNGP06.phx.gbl... A ver si os pasa esto y sabeis como se puede solucionar que me esta volviendo loco si pongo en un boton esto funciona perfectamente: Dim frm As Form = form1 If frm.ShowDialog = DialogResult.OK Then end if si pongo en el mismo boton esto: Dim frm As Form = frz If frm.ShowDialog = DialogResult.OK Then end if donde frz es una variable publica o un parámetro pasado al form. (Pongo en un modulo Public frz as form = form1) La primera vez que pulso el botón funciona, la segunda casca. -- /\_ ( / (() //) | \\ ,,;;'\ __ _( )m=(((((((((((((================-------- /' ' '()/~' '.(, | ,;( )|| | ~ ,;' \ /-(.;, ) ) / ) / // CID || )_\ )_\ Por necesidad batallo, y una vez puesto en la silla se va ensanchando Castilla al paso de mi caballo" |
| |||
| On 8 nov, 14:37, "Cid" <martinm...***hotmail.com> wrote: > Perdón se me olvido poner después del endif en los 2 casos > > frm.close > frm=nothing > > "Cid" <martinm...***hotmail.com> escribió en el mensaje de noticias:uKBLnugIIHA....***TK2MSFTNGP06.phx.gbl... > A ver si os pasa esto y sabeis como se puede solucionar que me esta volviendo loco > > si pongo en un boton esto funciona perfectamente: > > Dim frm As Form = form1 > If frm.ShowDialog = DialogResult.OK Then > > end if > > si pongo en el mismo boton esto: > > Dim frm As Form = frz > If frm.ShowDialog = DialogResult.OK Then > > end if > > donde frz es una variable publica o un parámetro pasado al form. (Pongo en un modulo Public frz as form = form1) > La primera vez que pulso el botón funciona, la segunda casca. > > -- > > /\_ > ( / > (() //) > | \\ ,,;;'\ > __ _( )m=(((((((((((((================-------- > /' ' '()/~' '.(, | > ,;( )|| | ~ > ,;' \ /-(.;, ) > ) / ) / > // CID || > )_\ )_\ > > Por necesidad batallo, > y una vez puesto en la silla > se va ensanchando Castilla > al paso de mi caballo" ¿Podrías poner el código con el que estás haciendo esto para revisarlo mejor?, claro, no todo el código, sino las partes donde estás haciendo las declaraciones, las llamadas a la función y el paso de parámetros. Un Saludo Federico Luna |
| |||
| Hola Cid Creo que puedes solucionar el problema, comprobando que en la variable frz el formulario esté realmente creado, ya que cuando pulsas la primera vez el botón OK en el diálogo, destruyes dicho formulario, y por ese motivo, en la segunda pasada por el código se produce el error. Prueba a realizar esta comprobación utilizando la propiedad Created de la clase Form, de forma similar a como puedes ver en el siguiente ejemeplo. '/////////////////////////// Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Not frz.Created Then frz = New frmDialogo() End If Dim frm As Form = frz If frm.ShowDialog() = DialogResult.OK Then frm.Close() frm = Nothing End If End Sub '/////////////////////////// Espero que te sirva de ayuda. -- Un saludo Luis Miguel Blanco http://www.dotnetmania.com "Cid" wrote: > Perdón se me olvido poner después del endif en los 2 casos > > frm.close > frm=nothing > > > "Cid" <martinms95***hotmail.com> escribió en el mensaje de noticias:uKBLnugIIHA.484***TK2MSFTNGP06.phx.gbl... > A ver si os pasa esto y sabeis como se puede solucionar que me esta volviendo loco > > si pongo en un boton esto funciona perfectamente: > > Dim frm As Form = form1 > If frm.ShowDialog = DialogResult.OK Then > > end if > > si pongo en el mismo boton esto: > > Dim frm As Form = frz > If frm.ShowDialog = DialogResult.OK Then > > end if > > donde frz es una variable publica o un parámetro pasado al form. (Pongo en un modulo Public frz as form = form1) > La primera vez que pulso el botón funciona, la segunda casca. > > > > -- > > > /\_ > ( / > (() //) > | \\ ,,;;'\ > __ _( )m=(((((((((((((================-------- > /' ' '()/~' '.(, | > ,;( )|| | ~ > ,;' \ /-(.;, ) > ) / ) / > // CID || > )_\ )_\ > > Por necesidad batallo, > y una vez puesto en la silla > se va ensanchando Castilla > al paso de mi caballo" |
| |||
| El caso es que necesito que sea usando la forma generica porque lo he simplificado pero en el caso real es un form generico y unas veces le llega un form otras otro etc.. "Luis Miguel Blanco" <LuisMiguelBlanco***discussions.microsoft.com> escribió en el mensaje de noticias:CD4715AA-F884-4234-8C8A-35E15EE2F656***microsoft.com... > Hola Cid > > Creo que puedes solucionar el problema, comprobando que en la variable frz > el formulario esté realmente creado, ya que cuando pulsas la primera vez > el > botón OK en el diálogo, destruyes dicho formulario, y por ese motivo, en > la > segunda pasada por el código se produce el error. > > Prueba a realizar esta comprobación utilizando la propiedad Created de la > clase Form, de forma similar a como puedes ver en el siguiente ejemeplo. > > '/////////////////////////// > Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles Button1.Click > If Not frz.Created Then > frz = New frmDialogo() > End If > > Dim frm As Form = frz > If frm.ShowDialog() = DialogResult.OK Then > frm.Close() > frm = Nothing > End If > End Sub > '/////////////////////////// > > Espero que te sirva de ayuda. > > -- > Un saludo > Luis Miguel Blanco > http://www.dotnetmania.com > > > "Cid" wrote: > >> Perdón se me olvido poner después del endif en los 2 casos >> >> frm.close >> frm=nothing >> >> >> "Cid" <martinms95***hotmail.com> escribió en el mensaje de >> noticias:uKBLnugIIHA.484***TK2MSFTNGP06.phx.gbl... >> A ver si os pasa esto y sabeis como se puede solucionar que me esta >> volviendo loco >> >> si pongo en un boton esto funciona perfectamente: >> >> Dim frm As Form = form1 >> If frm.ShowDialog = DialogResult.OK Then >> >> end if >> >> si pongo en el mismo boton esto: >> >> Dim frm As Form = frz >> If frm.ShowDialog = DialogResult.OK Then >> >> end if >> >> donde frz es una variable publica o un parámetro pasado al form. (Pongo >> en un modulo Public frz as form = form1) >> La primera vez que pulso el botón funciona, la segunda casca. >> >> >> >> -- >> >> >> /\_ >> ( / >> (() //) >> | \\ ,,;;'\ >> __ _( )m=(((((((((((((================-------- >> /' ' '()/~' '.(, | >> ,;( )|| | ~ >> ,;' \ /-(.;, ) >> ) / ) / >> // CID || >> )_\ )_\ >> >> Por necesidad batallo, >> y una vez puesto en la silla >> se va ensanchando Castilla >> al paso de mi caballo" |
| |||
| pues es que es todo el codigo no hay nada mas, solo con ese codigo ya falla.. "Federico" <federicopablolunasalazar***yahoo.es> escribió en el mensaje de noticias:1194551586.950329.34710***q5g2000prf.google groups.com... On 8 nov, 14:37, "Cid" <martinm...***hotmail.com> wrote: > Perdón se me olvido poner después del endif en los 2 casos > > frm.close > frm=nothing > > "Cid" <martinm...***hotmail.com> escribió en el mensaje de > noticias:uKBLnugIIHA....***TK2MSFTNGP06.phx.gbl... > A ver si os pasa esto y sabeis como se puede solucionar que me esta > volviendo loco > > si pongo en un boton esto funciona perfectamente: > > Dim frm As Form = form1 > If frm.ShowDialog = DialogResult.OK Then > > end if > > si pongo en el mismo boton esto: > > Dim frm As Form = frz > If frm.ShowDialog = DialogResult.OK Then > > end if > > donde frz es una variable publica o un parámetro pasado al form. (Pongo > en un modulo Public frz as form = form1) > La primera vez que pulso el botón funciona, la segunda casca. > > -- > > /\_ > ( / > (() //) > | \\ ,,;;'\ > __ _( )m=(((((((((((((================-------- > /' ' '()/~' '.(, | > ,;( )|| | ~ > ,;' \ /-(.;, ) > ) / ) / > // CID || > )_\ )_\ > > Por necesidad batallo, > y una vez puesto en la silla > se va ensanchando Castilla > al paso de mi caballo" ¿Podrías poner el código con el que estás haciendo esto para revisarlo mejor?, claro, no todo el código, sino las partes donde estás haciendo las declaraciones, las llamadas a la función y el paso de parámetros. Un Saludo Federico Luna |
| |||
| No se si me explico, no puedo poner frz = New frmDialogo() porque no se que frmdialogo() llega, no hay forma de que instancie de forma generica el form como cuando se entro por primera vez? Si te fijas la primera vez no pongo ningun new. "Luis Miguel Blanco" <LuisMiguelBlanco***discussions.microsoft.com> escribió en el mensaje de noticias:CD4715AA-F884-4234-8C8A-35E15EE2F656***microsoft.com... > Hola Cid > > Creo que puedes solucionar el problema, comprobando que en la variable frz > el formulario esté realmente creado, ya que cuando pulsas la primera vez > el > botón OK en el diálogo, destruyes dicho formulario, y por ese motivo, en > la > segunda pasada por el código se produce el error. > > Prueba a realizar esta comprobación utilizando la propiedad Created de la > clase Form, de forma similar a como puedes ver en el siguiente ejemeplo. > > '/////////////////////////// > Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles Button1.Click > If Not frz.Created Then > frz = New frmDialogo() > End If > > Dim frm As Form = frz > If frm.ShowDialog() = DialogResult.OK Then > frm.Close() > frm = Nothing > End If > End Sub > '/////////////////////////// > > Espero que te sirva de ayuda. > > -- > Un saludo > Luis Miguel Blanco > http://www.dotnetmania.com > > > "Cid" wrote: > >> Perdón se me olvido poner después del endif en los 2 casos >> >> frm.close >> frm=nothing >> >> >> "Cid" <martinms95***hotmail.com> escribió en el mensaje de >> noticias:uKBLnugIIHA.484***TK2MSFTNGP06.phx.gbl... >> A ver si os pasa esto y sabeis como se puede solucionar que me esta >> volviendo loco >> >> si pongo en un boton esto funciona perfectamente: >> >> Dim frm As Form = form1 >> If frm.ShowDialog = DialogResult.OK Then >> >> end if >> >> si pongo en el mismo boton esto: >> >> Dim frm As Form = frz >> If frm.ShowDialog = DialogResult.OK Then >> >> end if >> >> donde frz es una variable publica o un parámetro pasado al form. (Pongo >> en un modulo Public frz as form = form1) >> La primera vez que pulso el botón funciona, la segunda casca. >> >> >> >> -- >> >> >> /\_ >> ( / >> (() //) >> | \\ ,,;;'\ >> __ _( )m=(((((((((((((================-------- >> /' ' '()/~' '.(, | >> ,;( )|| | ~ >> ,;' \ /-(.;, ) >> ) / ) / >> // CID || >> )_\ )_\ >> >> Por necesidad batallo, >> y una vez puesto en la silla >> se va ensanchando Castilla >> al paso de mi caballo" |
| |||
| una posible solucion seria pasar el nombre del form como string por ejemplo var="form1" y en la llamada del boton poner algo asi como dim frz as form = ctype(var,form) solo que no traga y no se como. "Luis Miguel Blanco" <LuisMiguelBlanco***discussions.microsoft.com> escribió en el mensaje de noticias:CD4715AA-F884-4234-8C8A-35E15EE2F656***microsoft.com... > Hola Cid > > Creo que puedes solucionar el problema, comprobando que en la variable frz > el formulario esté realmente creado, ya que cuando pulsas la primera vez > el > botón OK en el diálogo, destruyes dicho formulario, y por ese motivo, en > la > segunda pasada por el código se produce el error. > > Prueba a realizar esta comprobación utilizando la propiedad Created de la > clase Form, de forma similar a como puedes ver en el siguiente ejemeplo. > > '/////////////////////////// > Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As > System.EventArgs) Handles Button1.Click > If Not frz.Created Then > frz = New frmDialogo() > End If > > Dim frm As Form = frz > If frm.ShowDialog() = DialogResult.OK Then > frm.Close() > frm = Nothing > End If > End Sub > '/////////////////////////// > > Espero que te sirva de ayuda. > > -- > Un saludo > Luis Miguel Blanco > http://www.dotnetmania.com > > > "Cid" wrote: > >> Perdón se me olvido poner después del endif en los 2 casos >> >> frm.close >> frm=nothing >> >> >> "Cid" <martinms95***hotmail.com> escribió en el mensaje de >> noticias:uKBLnugIIHA.484***TK2MSFTNGP06.phx.gbl... >> A ver si os pasa esto y sabeis como se puede solucionar que me esta >> volviendo loco >> >> si pongo en un boton esto funciona perfectamente: >> >> Dim frm As Form = form1 >> If frm.ShowDialog = DialogResult.OK Then >> >> end if >> >> si pongo en el mismo boton esto: >> >> Dim frm As Form = frz >> If frm.ShowDialog = DialogResult.OK Then >> >> end if >> >> donde frz es una variable publica o un parámetro pasado al form. (Pongo >> en un modulo Public frz as form = form1) >> La primera vez que pulso el botón funciona, la segunda casca. >> >> >> >> -- >> >> >> /\_ >> ( / >> (() //) >> | \\ ,,;;'\ >> __ _( )m=(((((((((((((================-------- >> /' ' '()/~' '.(, | >> ,;( )|| | ~ >> ,;' \ /-(.;, ) >> ) / ) / >> // CID || >> )_\ )_\ >> >> Por necesidad batallo, >> y una vez puesto en la silla >> se va ensanchando Castilla >> al paso de mi caballo" |
| |||
| Hola Cid No se si este código puede serte util: *********************** textBox1.Text = "MyNameSpace.Form2" ....... Try Dim tempAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly() ' if class is located in another DLL or EXE, use something like ' tempAssembly = Assembly.LoadFrom("myDLL.DLL") ' or ' tempAssembly = Assembly.LoadFrom("myEXE.exe") Dim frm1 As Form = CType(tempAssembly.CreateInstance(textBox1.Text), Form) ' as Form; frm1.Show() Catch ex As Exception MessageBox.Show("Error creating: " + ex.ToString()) End Try *********************** Saludos "Cid" <martinms95***hotmail.com> escribió en el mensaje news:OSzGdsyIIHA.4592***TK2MSFTNGP02.phx.gbl... > una posible solucion seria pasar el nombre del form como string por > ejemplo var="form1" y en la llamada del boton poner algo asi como dim frz > as form = ctype(var,form) solo que no traga y no se como. > > > "Luis Miguel Blanco" <LuisMiguelBlanco***discussions.microsoft.com> escribió > en el mensaje de > noticias:CD4715AA-F884-4234-8C8A-35E15EE2F656***microsoft.com... >> Hola Cid >> >> Creo que puedes solucionar el problema, comprobando que en la variable >> frz >> el formulario esté realmente creado, ya que cuando pulsas la primera vez >> el >> botón OK en el diálogo, destruyes dicho formulario, y por ese motivo, en >> la >> segunda pasada por el código se produce el error. >> >> Prueba a realizar esta comprobación utilizando la propiedad Created de la >> clase Form, de forma similar a como puedes ver en el siguiente ejemeplo. >> >> '/////////////////////////// >> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As >> System.EventArgs) Handles Button1.Click >> If Not frz.Created Then >> frz = New frmDialogo() >> End If >> >> Dim frm As Form = frz >> If frm.ShowDialog() = DialogResult.OK Then >> frm.Close() >> frm = Nothing >> End If >> End Sub >> '/////////////////////////// >> >> Espero que te sirva de ayuda. >> >> -- >> Un saludo >> Luis Miguel Blanco >> http://www.dotnetmania.com >> >> >> "Cid" wrote: >> >>> Perdón se me olvido poner después del endif en los 2 casos >>> >>> frm.close >>> frm=nothing >>> >>> >>> "Cid" <martinms95***hotmail.com> escribió en el mensaje de >>> noticias:uKBLnugIIHA.484***TK2MSFTNGP06.phx.gbl... >>> A ver si os pasa esto y sabeis como se puede solucionar que me esta >>> volviendo loco >>> >>> si pongo en un boton esto funciona perfectamente: >>> >>> Dim frm As Form = form1 >>> If frm.ShowDialog = DialogResult.OK Then >>> >>> end if >>> >>> si pongo en el mismo boton esto: >>> >>> Dim frm As Form = frz >>> If frm.ShowDialog = DialogResult.OK Then >>> >>> end if >>> >>> donde frz es una variable publica o un parámetro pasado al form. >>> (Pongo en un modulo Public frz as form = form1) >>> La primera vez que pulso el botón funciona, la segunda casca. >>> >>> >>> >>> -- >>> >>> >>> /\_ >>> ( / >>> (() //) >>> | \\ ,,;;'\ >>> __ _( )m=(((((((((((((================-------- >>> /' ' '()/~' '.(, | >>> ,;( )|| | ~ >>> ,;' \ /-(.;, ) >>> ) / ) / >>> // CID || >>> )_\ )_\ >>> >>> Por necesidad batallo, >>> y una vez puesto en la silla >>> se va ensanchando Castilla >>> al paso de mi caballo" > |
| |||
| Hola Cid SÃ*** no te preocupes, entiendo perfectamente el problema. En ese caso naturalmente, la solución que yo te aportaba no resulta válida. La primera vez te funciona con "Public frz As Form = form1", incluso sin utilizar New, porque se crea una instancia predeterminada del formulario. Aunque ten en cuenta que internamente sÃ*** que se utiliza New a pesar de que no lo hayas especificado en el código, porque para instanciar el formulario es necesario. Pero posteriormente destruyes dicha instancia del formulario al asignar Nothing a la variable que lo contiene. Es por ello, que para conseguir lo que necesitas tendrÃ***as que recurrir al espacio de nombres Reflection, utilizando el código que te propone rdgm en su ejemplo. El método Assembly.CreateInstance necesita, tal y como te indicaba rdgm en su código, que el nombre de la clase del formulario venga acompañado por el espacio de nombres al que pertenece, por ejemplo MyNameSpace.Form2. Si el espacio de nombres es el de la propia aplicación y sólo quieres usar el nombre de la clase, al llamar a CreateInstance, puedes utilizar el método GetName de la clase Assembly, para obtener el espacio de nombres, de forma parecida a la siguiente: '////////////////////////////////// Dim sNombreOtro As String = "frmOtroDialogo" Dim oEnsamblado As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly() Dim frm As Form = oEnsamblado.CreateInstance(oEnsamblado.GetName().N ame & "." & sNombreOtro) frm.Show() '////////////////////////////////// Espero que te sirva de ayuda. -- Un saludo Luis Miguel Blanco http://www.dotnetmania.com "Cid" wrote: > No se si me explico, no puedo poner frz = New frmDialogo() porque no se > que frmdialogo() llega, no hay forma de que instancie de forma generica el > form como cuando se entro por primera vez? Si te fijas la primera vez no > pongo ningun new. > > > "Luis Miguel Blanco" <LuisMiguelBlanco***discussions.microsoft.com> escribió > en el mensaje de > noticias:CD4715AA-F884-4234-8C8A-35E15EE2F656***microsoft.com... > > Hola Cid > > > > Creo que puedes solucionar el problema, comprobando que en la variable frz > > el formulario esté realmente creado, ya que cuando pulsas la primera vez > > el > > botón OK en el diálogo, destruyes dicho formulario, y por ese motivo, en > > la > > segunda pasada por el código se produce el error. > > > > Prueba a realizar esta comprobación utilizando la propiedad Created de la > > clase Form, de forma similar a como puedes ver en el siguiente ejemeplo. > > > > '/////////////////////////// > > Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As > > System.EventArgs) Handles Button1.Click > > If Not frz.Created Then > > frz = New frmDialogo() > > End If > > > > Dim frm As Form = frz > > If frm.ShowDialog() = DialogResult.OK Then > > frm.Close() > > frm = Nothing > > End If > > End Sub > > '/////////////////////////// > > > > Espero que te sirva de ayuda. > > > > -- > > Un saludo > > Luis Miguel Blanco > > http://www.dotnetmania.com > > > > > > "Cid" wrote: > > > >> Perdón se me olvido poner después del endif en los 2 casos > >> > >> frm.close > >> frm=nothing > >> > >> > >> "Cid" <martinms95***hotmail.com> escribió en el mensaje de > >> noticias:uKBLnugIIHA.484***TK2MSFTNGP06.phx.gbl... > >> A ver si os pasa esto y sabeis como se puede solucionar que me esta > >> volviendo loco > >> > >> si pongo en un boton esto funciona perfectamente: > >> > >> Dim frm As Form = form1 > >> If frm.ShowDialog = DialogResult.OK Then > >> > >> end if > >> > >> si pongo en el mismo boton esto: > >> > >> Dim frm As Form = frz > >> If frm.ShowDialog = DialogResult.OK Then > >> > >> end if > >> > >> donde frz es una variable publica o un parámetro pasado al form. (Pongo > >> en un modulo Public frz as form = form1) > >> La primera vez que pulso el botón funciona, la segunda casca. > >> > >> > >> > >> -- > >> > >> > >> /\_ > >> ( / > >> (() //) > >> | \\ ,,;;'\ > >> __ _( )m=(((((((((((((================-------- > >> /' ' '()/~' '.(, | > >> ,;( )|| | ~ > >> ,;' \ /-(.;, ) > >> ) / ) / > >> // CID || > >> )_\ )_\ > >> > >> Por necesidad batallo, > >> y una vez puesto en la silla > >> se va ensanchando Castilla > >> al paso de mi caballo" > > |
| |
| |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| MÉXICO- Mientras Aracely Arámbula pasa por momentos difíciles por la salud de su hermano, su ex pareja, Luis Miguel, la pasa de lo lindo al lado de la mexicana Genoveva Casanova, quien recientemente se divorció del Conde de Salvatierra, Cayetano Mart | Jose | Newsgroup es.charla.politica.misc | 0 | 15-05-2008 16:20:01 |
| OYE QUE PASA | jorge__arbona@hotmail.com | Newsgroup es.rec.tv.decodificacion | 0 | 06-12-2007 18:41:35 |
| con qué se pasa a flv ??? | Teresa Pino | Newsgroup es.rec.video.edicion | 12 | 14-02-2007 09:37:27 |
| ¿Que pasa con OS 4? | StalVs | Newsgroup es.comp.amiga | 15 | 06-01-2005 23:23:23 |
| ¿Que pasa? | Nevica | Newsgroup es.soc.cultura.sin-tabaco | 0 | 14-04-2004 21:40:46 |