• Viernes 29 de Marzo de 2024, 08:16

Autor Tema:  Cargar formularios de forma aleatoria  (Leído 2837 veces)

Jesmi89

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Cargar formularios de forma aleatoria
« en: Sábado 25 de Junio de 2011, 03:52 »
0
Hola lo que pasa es q estoy haciendo un proyecto sobre las tablas de multiplicar en las que en cada form me genera cada tabla, es decir  la de 2, 3, 4, asi sucesivamente, y lo que quiero es q cada vez q el usuario ejecute la aplicacion se cargue un formulario distinto cada vez, ya que despues de realizar cierto numero de aciertos la aplicacion se cierra.

Pero en verdad no he encontrado la forma sobre como se podria hacer y espero sea posible.

Ojala alguien me pueda colaborar u orientarme sobre q hacer. Gracias ;)

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: Cargar formularios de forma aleatoria
« Respuesta #1 en: Lunes 27 de Junio de 2011, 15:47 »
0
La idea NO es tener un formulario por cada tabla, la idea es cargar una tabla de multiplicar diferente en tú formulario.

Como cargas tus tablas.. muestra tú código para ver que haz hecho.. un saludo! :)
@gabio87

Jesmi89

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Cargar formularios de forma aleatoria
« Respuesta #2 en: Martes 28 de Junio de 2011, 03:15 »
0
hola gabio2, ps mira la idea si es cargar cada tabla en formulario independiente, y ps lo q tengo en cada uno de ellos, claro esta cmbiandole eltipo d etabla a mostrar es asi:

Código: vb.net
  1. Public Class Form1
  2.  
  3.     Dim intentosfallidos, aciertos As Integer
  4.     Dim Random As New Random()
  5.  
  6.     Dim hora As Integer = 0
  7.     Dim minuto As Integer = 0
  8.     Dim segundo As Integer = 0
  9.     Dim milisegundo As Integer = 0
  10.  
  11.     Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
  12.  
  13.         If Not Char.IsDigit(e.KeyChar) And Asc(e.KeyChar) <> 8 Then
  14.  
  15.             e.Handled = True
  16.  
  17.         End If
  18.  
  19.     End Sub
  20.  
  21.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  22.  
  23.         If (Val(Label1.Text) * Val(Label6.Text) = Val(TextBox1.Text)) Then
  24.             MsgBox("Muy bien")
  25.             Me.TextBox1.Text = ""
  26.             TextBox1.Focus()
  27.  
  28.             aciertos = aciertos + 1
  29.             TextBox3.Text = aciertos
  30.  
  31.             Dim op2 As Integer = Random.Next(2, 10)
  32.             Label6.Text = op2
  33.  
  34.             Static Dim iImage2 As Integer
  35.  
  36.             Select Case iImage2
  37.                 Case 0
  38.  
  39.                     PictureBox1.Visible = True
  40.                     PictureBox1.Image = System.Drawing.Image.FromFile("C:UsersJessica.JorgeA1DocumentsVisual Studio 2005ProjectsWindowsApplication1WindowsApplication1PICTURESonionhead011_thumb.gif")
  41.                     iImage2 += 1
  42.                 Case 1
  43.  
  44.                     PictureBox1.Visible = True
  45.                     PictureBox1.Image = System.Drawing.Image.FromFile("C:UsersJessica.JorgeA1DocumentsVisual Studio 2005ProjectsWindowsApplication1WindowsApplication1PICTURESonionhead086_thumb.gif")
  46.                     iImage2 += 1
  47.  
  48.             End Select
  49.  
  50.         ElseIf Not (Val(Label1.Text) * Val(Label2.Text) = Val(TextBox1.Text)) Then
  51.             MsgBox("El resultado no es correcto")
  52.             Me.TextBox1.Text = ""
  53.             TextBox1.Focus()
  54.  
  55.             intentosfallidos = intentosfallidos + 1
  56.             TextBox2.Text = intentosfallidos
  57.  
  58.             '//////////////
  59.             Static Dim iImage0 As Integer
  60.  
  61.             Select Case iImage0
  62.                 Case 0
  63.  
  64.                     PictureBox1.Visible = True
  65.                     PictureBox1.Image = System.Drawing.Image.FromFile("C:UsersJessica.JorgeA1DocumentsVisual Studio 2005ProjectsWindowsApplication1WindowsApplication1PICTURESemoticon_onion_fantasmita_gifs_animado_msnanimal_com-27.gif")
  66.                     iImage0 += 1
  67.                 Case 1
  68.  
  69.                     PictureBox1.Visible = True
  70.                     PictureBox1.Image = System.Drawing.Image.FromFile("C:UsersJessica.JorgeA1DocumentsVisual Studio 2005ProjectsWindowsApplication1WindowsApplication1PICTURESonionhead007_thumb.gif")
  71.                     iImage0 += 1
  72.  
  73.             End Select
  74.         End If
  75.     End Sub
  76.  
  77.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  78.  
  79.         Dim Random As New Random()
  80.         Dim op2 As Integer = Random.Next(2, 10)
  81.  
  82.         Label6.Text = op2
  83.  
  84.         '////
  85.         Timer2.Enabled = True
  86.  
  87.     End Sub
  88.  
  89.     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  90.  
  91.         Dim max As Integer = 4000
  92.         Dim rnd As New Random
  93.         Dim rand As Integer = rnd.Next(10, max + 1)
  94.         Dim i As Integer = 1
  95.         Dim number(max - 1) As Integer
  96.  
  97.         For i = 0 To max - 1
  98.             If number(i) = rand Then
  99.                 rand = rnd.Next(1, max + 1)
  100.                 i = -1
  101.             ElseIf number(i) = 0 Then
  102.                 number(i) = rand
  103.                 rand = rnd.Next(1, max + 1)
  104.                 If i = max - 1 Then
  105.                     Exit For
  106.                 End If
  107.                 i = -1
  108.             End If
  109.         Next
  110.         Timer1.Interval = number(i)
  111.         i += 1
  112.  
  113.         ChangeImage()
  114.     End Sub
  115.  
  116.     Private Sub ChangeImage()
  117.  
  118.         Static Dim iImage1 As Integer
  119.  
  120.         Select Case iImage1
  121.             Case 0
  122.  
  123.                 PictureBox1.Visible = True
  124.                 PictureBox1.Image = System.Drawing.Image.FromFile("C:UsersJessica.JorgeA1DocumentsVisual Studio 2005ProjectsWindowsApplication1WindowsApplication1PICTUREScebollita_club_emoticon_yo_www.trucoslive.x10hosting.com.gif")
  125.                 iImage1 += 1
  126.             Case 1
  127.  
  128.                 PictureBox1.Visible = True
  129.                 PictureBox1.Image = System.Drawing.Image.FromFile("C:UsersJessica.JorgeA1DocumentsVisual Studio 2005ProjectsWindowsApplication1WindowsApplication1PICTURESonionhead003_thumb.gif")
  130.                 iImage1 += 1
  131.             Case 2
  132.  
  133.                 PictureBox1.Visible = True
  134.                 PictureBox1.Image = System.Drawing.Image.FromFile("C:UsersJessica.JorgeA1DocumentsVisual Studio 2005ProjectsWindowsApplication1WindowsApplication1PICTURESonionhead086_thumb.gif")
  135.                 iImage1 += 1
  136.  
  137.         End Select
  138.     End Sub
  139.  
  140.     Sub mostrarTiempo()
  141.  
  142.         Label7.Text = hora.ToString.PadLeft(2, "0") & ":"
  143.         Label7.Text &= minuto.ToString.PadLeft(2, "0") & ":"
  144.         Label7.Text &= segundo.ToString.PadLeft(2, "0") & ":"
  145.         Label7.Text &= milisegundo.ToString.PadLeft(1, "0")
  146.  
  147.         Label7.Refresh()
  148.  
  149.         If Label7.Text = "00:02:00:0" And TextBox3.Text >= "10" Then
  150.             MsgBox("Muy bien, ahora da click en continuar y podrás jugar", MsgBoxStyle.Information)
  151.  
  152.         ElseIf Label7.Text = "00:02:00:0" And TextBox3.Text = "8" Then
  153.  
  154.             MsgBox("Debes mejorar, da click en continuar y podrás jugar", MsgBoxStyle.Information)
  155.  
  156.         End If
  157.  
  158.         If Label7.Text > "00:02:00:0" And TextBox3.Text <= "7" Then
  159.             MsgBox("Debes volver a repetirlas", MsgBoxStyle.Information)
  160.         End If
  161.     End Sub
  162.     Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
  163.         milisegundo += 1
  164.         If milisegundo = 9 Then
  165.             milisegundo = 0
  166.             segundo += 1
  167.             If segundo = 59 Then
  168.                 segundo = 0
  169.                 minuto += 1
  170.                 If minuto = 59 Then
  171.                     minuto = 0
  172.                     hora += 1
  173.                 End If
  174.             End If
  175.         End If
  176.         mostrarTiempo()
  177.  
  178.     End Sub
  179.  
  180.    
  181.  
  182.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  183.  
  184.         If TextBox3.Text = "10" Or TextBox3.Text = "8" Then
  185.             Shell("C:UsersJessica.JorgeA1DocumentsSAgta.exe", AppWinStyle.NormalFocus)
  186.  
  187.  
  188.         End If
  189.  
  190.         Me.Hide()
  191.  
  192.     End Sub
  193.  
  194.  
  195. End Class
  196.  
  197.  
  198.  

y al imagen de cada formulario la puse como adjunto s ellama img.


y otra cosita q tambien quisiera saber es saber como hacer para que la opcion de abrir un programa externo a visual me funciona ya q como puedes notar lo hago mediante, shell, quedando

Código: Visual Basic
  1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  2.  
  3.         If TextBox3.Text = "10" Or TextBox3.Text = "8" Then
  4.             Shell("C:UsersJessica.JorgeA1DocumentsSA", AppWinStyle.NormalFocus)
  5.  
  6.  
  7.         End If
  8.  
  9.         Me.Hide()
  10.  
  11.     End Sub
  12.  

Pero lo que sucede es que no pasa nada no abre nada, he intentado probando con programas pertenecientes a windows funciona muy bien, pero intento abrir uno distinto y no funciona q podria ser.

Gracias
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: Cargar formularios de forma aleatoria
« Respuesta #3 en: Martes 28 de Junio de 2011, 16:09 »
0
Bueno, la verdad que para mí la solución ideal es cargar cualquier tabla (aleatoriamente) desde un solo formulario, pero bueno, lo que tú deseas lo puedes hacer con un Formulario padre (mdi) entonces hacer un Random.Next(1,10) [si tú tabla es del 1 al 10],  entonces usar un swich (Select Case), y dependiendo de la respuesta del ramdon será el formulario que abras.. y al formulario principal le puedes dar un Me.Hide() para que lo esconda y jamáz se vea.

ejemplo:

Código: vb.net
  1.  
  2. Select Case (Random.Next(1,10))
  3. case 1:
  4.             Dim _formprov AS New FormTabla1
  5.             _formprov.MdiParent = Me
  6.             _formprov.StartPosition = FormStartPosition.CenterScreen
  7.             _formprov.Show()
  8. case2:
  9. '
  10. '
  11. '
  12.  
  13. End Select
  14.  
  15.  
  16.  

Recuerda a tu formulario principal ponerle la propiedad MdiParent  como TRUE desde el diseñador.

ahora.. respondiendo tu segunda pregunta intenta usar :

Código: vb.net
  1.  
  2. Process.Start()
  3.  
  4.  


Un saludo espero te sirva! :)
@gabio87

Jesmi89

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Cargar formularios de forma aleatoria
« Respuesta #4 en: Miércoles 29 de Junio de 2011, 05:17 »
0
Hola, oye muchisimas gracias por tu respuesta, la primera excelente me funciono super bien, pero con respecto a la otra  use process.start() como em sugeriste pero ocurre el mismo incoveniente, no abre nada.

A q crees q se deba? &lt;_&lt;

gabio2

  • Miembro MUY activo
  • ***
  • Mensajes: 402
  • Nacionalidad: mx
    • Ver Perfil
Re: Cargar formularios de forma aleatoria
« Respuesta #5 en: Miércoles 29 de Junio de 2011, 07:20 »
0
Código: vb.net
  1.  
  2. Process.Start("C:Ejemplo.txt")
  3.  
  4.  

yo lo utilizo y me funciona al 100%... en todo caso, te recomiendo que leas esto:

http://msdn.microsoft.com/es-es/library ... 80%29.aspx
@gabio87