Problema al mostrar el Form Parent

Iniciado por z3nth10n, 30 Mayo 2013, 19:52 PM

0 Miembros y 11 Visitantes están viendo este tema.

z3nth10n


Interesados hablad por Discord.

Eleкtro

#11
Código (vbnet) [Seleccionar]
 Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
        Application.Exit()
   End Sub


Eso está mal, debes usar el evento FormClosing, cuando el form se ha cerrado del todo ya no ocurre náh.

Aunque meter un "application.exit" en un "formclosing" tampoco sirve para nada, es decir, no estarías agregando ninguna inastrucción nueva al sub, en lugar de eso y si prefieres usa "End" (pero lee para que sirve).






El error, como yo supuse (código conflictivo), lo tienes aquí:

Código (vbnet) [Seleccionar]
   Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
       PictureBox1.Image = Image.FromFile(".\Art\rojo1.png")
       Timer1.Start()
   End Sub

   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       frmMinecraft.Show()
       Me.Hide()
   End Sub


Al pulsar el botón rojo inicias un timer que a los 50 ms oculta el form principal, cuando le das al botón "patrás" para mostrar de nuevo el form principal, ese timer sigue en marcha.

¿Como solucionarlo?, no te lo iba a decir, pero es que no sé pa que coño tienes un timer para mostrar un Form XDDD.


Código (vbnet) [Seleccionar]
   Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
       PictureBox1.Image = Image.FromFile(".\Art\rojo1.png")
       frmMinecraft.Show()
   End Sub

   ' Esto lo eliminas,
   ' Y el timer del Designer lo eliminas si solo le das este uso.
   '
   'Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
   'frmMinecraft.Show()
   'Me.Hide()
   ' End Sub


Código (vbnet) [Seleccionar]
   Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
       frmMain.Show()
       Me.Dispose()
   End Sub


PD: Si ese mismo problema estuviese en un form secundario, al liberarlo con un .Dispose se arreglaría, sigue usando .Dispose como te dije (y solo en forms secundarios) para evitar futuros problemas, eso no lo cambies.

PD2: Lo que no tenias nombrado eran los subs (algunos), tienes razón, no lo miré bien xD.

Saludos!








z3nth10n

#12
Ehm  a ver ese Timer lo tengo para que se vea una imagen con relieve invertido...

Entonces ya se como solucionarlo  ;)
Graciassss... :D




En el Form secundario en el Load pongo:

Código (vbnet) [Seleccionar]
frmMain.Timer1.Stop()

Y ya está...
PD: No tengo mucha lógica... xD (Soy novato, esos despistes luego no se me escaparán)

:)

Interesados hablad por Discord.

Eleкtro

Cita de: Seazoux en 31 Mayo 2013, 17:46 PM
Ehm  a ver ese Timer lo tengo para que se vea una imagen con relieive invertido...

Si hombre, si encima voy a quedar mal no? xD

Código (vbnet) [Seleccionar]

   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       frmMinecraft.Show()
       Me.Hide()
   End Sub


De imágenes nada, el código no miente, eso es lo que hace el único Timer de tu proyecto.

Saludos!








z3nth10n

Pues si no te has fijado arriba hay esto:

Código (vbnet) [Seleccionar]
   Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
       PictureBox1.Image = Image.FromFile(".\Art\mineb2.png")
       Timer1.Start()
   End Sub


PD: Este código está actualizado...

xDXDXD

Ciegos everywhere... xD

Entonces el tema del Skype que?
Hablame por MP...  ;)

Interesados hablad por Discord.

Eleкtro

Cita de: Seazoux en 31 Mayo 2013, 17:51 PMPues si no te has fijado arriba hay esto:

Me he fijado perféctamente, no entiendes lo que estás haciendo.

¿Me puedes explicar que es lo que crees que consigues en ese último código que acabas de mostrar? (te lo pregunto por ayudar)

Te lo vuelvo a decir macho, esto es lo que hace tu Timer:

Código (vbnet) [Seleccionar]
  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       frmMinecraft.Show()
       Me.Hide()
   End Sub


El Timer hace lo que asocias al evento Tick, absolútamente NADA más.

"timer1.start" eso sólamente inicia el timer, que lo pongas debajo de una línea que mustra una imágen eso no significa que el timer vaya a mostrar la imagen.

Repásate las cosas un poco '¬¬

Saludos!








z3nth10n

#16
Bueno da igual, con que funcione yo soy feliz xD

PD: A lo mejor dentro de unos años volveré a ver mis topics (cuando sepa algo más de VB.NET) y diré pues vaya gilipollez hice aquellos días Elektro llevaba razón...
Pero en fin... déjame con mi realidad... ;)





EDITO:
Ya se que la imagen no la muestra el Timer, lo que quiero hacer es que se vea... Porque si la muestro sin ponerle un retraso de 50ms mínimo no se ve nada así que...  :silbar:

(Esos años han pasado en Timelapse XDDDD)

Interesados hablad por Discord.

Eleкtro

Cita de: Seazoux en 31 Mayo 2013, 17:58 PM
PD: A lo mejor dentro de unos años volveré a ver mis topics (cuando sepa algo más de VB.NET) y diré pues vaya gilipollez hice aquellos días Elektro llevaba razón...
Pero en fin... déjame con mi realidad... ;)

¡¿Será posible?!

Lo más increible es que aún sigas poniéndolo en duda y creas que llevas razón.

vale, yo lo dejo, me rindo ya, llevas razón y ese timer muestra una imágen xD, ahoraaa... en el futuro no nos vengas con problemas de que un Timer no te muestra cierta imágen, porque verás...!! xD   es broma, más o menos, me rio por no llorar. incrédulos...

un saludo, ya no hago más spam.











z3nth10n

Lee mi ultimo EDIT, a lo mejor estabas posteando y no te has dado cuenta te lo cito:

Cita de: Seazoux en 31 Mayo 2013, 17:58 PM
EDITO:
Ya se que la imagen no la muestra el Timer, lo que quiero hacer es que se vea... Porque si la muestro sin ponerle un retraso de 50ms mínimo no se ve nada así que...  :silbar:

(Esos años han pasado en Timelapse XDDDD)

PD: Básicamente no se muestra porque no le da tiempo suficiente...

Interesados hablad por Discord.

Eleкtro

Cita de: Seazoux en 31 Mayo 2013, 17:58 PM
Ya se que la imagen no la muestra el Timer, lo que quiero hacer es que se vea... Porque si la muestro sin ponerle un retraso de 50ms mínimo no se ve nada así que...  :silbar:

No, primero dices que el timer muestra una imágen (no me jodas, eso lo has dicho, no estoy loco), luego dices que sabes que el Timer no muestra la imágen pero que lo que quieres hacer es que el Timer muestre la imágen?, me parece un poco lío.

¿Que quieres hacer y cual es el problema?, tengo el form aquí, aprovecha siendo claro.