Ayudita sobre Programación

    • chichospit
      chichospit
      Bronce
      Registro: 09-10-2008 Artículos: 1.075
      Hola!

      Pues eso, estoy tonteando con el Visual Studio 2010, la verdad es que no me entero de mucho... pero necesitaba cambiar el BackColor de varios botones a la vez.

      El tema es : Pulsar un Botón, y que cambie el color de fondo de 4 botones.
      parece fácil pero me trae loco..

      He probado de todo, intenté crear una coleccion de controles, pero no sé como aplicar el backcolor a la coleccion.

      Bueno, eso.. a ver si alguien me ilumina un poco...

      PS: la mitad de pokerstrategas soys ingenieros, y la otra mitad programadores, asi que espero que alguien se anime.. xD
  • 10 respuestas
    • Lefurz
      Lefurz
      Bronce
      Registro: 05-03-2010 Artículos: 112
      prueba hacerlo con WPF, pero si aun sigues con winforms puedes ponerlos en un arreglo de controles en el foro del guille hay info sobre esto
    • chichospit
      chichospit
      Bronce
      Registro: 09-10-2008 Artículos: 1.075
      Hi!!

      lo del WPF ni idea, lo de arreglo de controles, supongo que es lo mismo que un array de controles.
      el foro de guille me suena de haber estado por ahí..

      Creo que lo que intento hacer es esto :
      Estuve intentando ejecutar el ejemplo que aparece, pero no fui capaz...
      realmente no tengo ni Put** idea de programación, todo lo que estuve haciendo fue con 4 ifs.. y poco mas..

      Ejecutar varias instrucciones para todos los elementos de una colección o matriz

      he creado una colección, y e sido capaz de añadir y quitar controles (botones), pero lo que busco es algo, tipo..
      coleccion.backcolor = color.Black

      Creo que en versiones anteriores de VB, se podia crear grupos de botones y meterlos en variables, pero en las versiones nuevas de VB.net no.

      me faltan las piezas para unir todo esto...
      repito soy bastante fish en conceptos de programación.
    • chichospit
      chichospit
      Bronce
      Registro: 09-10-2008 Artículos: 1.075
      a todo esto:
      anteriormente he creado un sistema que en teoría hace lo que quiero, pero simplemente, hace lo que le da la gana...

      por ejemplo, si en un TextBox, escribía "AKs", pues, el botón AKs se coloreaba de negro.

      if Textbox.text = "AKs" then AKs.backcolor = color.Black
      if textbox.text = "AQs" then AKs.backcolor = color.Black and AQs.backcolor = color.Back.
      y asi...

      pero el resultado es que colorea los que le apetece...
    • alejoMerchan
      alejoMerchan
      Bronce
      Registro: 08-01-2008 Artículos: 1.653
      Hola chichospit

      Como hiciste el primer el primer ejemplo que mencionaste ?? como has tratado??

      Un saludo
      alejoMerchan
    • chichospit
      chichospit
      Bronce
      Registro: 09-10-2008 Artículos: 1.075
      Hola Chicos...

      Merchan, no sé muy bien a que ejemplo te refieres...

      Para que os hagáis una idea lo que intento hacer es un panel como el del equilator, con 169 botones, y que al mover un Slider (o trackbar), o al ingresar X% en un TextBox, me coloree de Amarillo el Rango.. (como el equilator)

      este es un trozo de código de como lo hice al principio...

      sAK, sAQ, sAJ, son Botones,
      vAxs es una variable

      Private Sub RAxs()
      If vAxs = "AKs+" Then
      sAK.backcolor = color.maroon
      ElseIf vAxs = "AQs+" Then
      sAK.backcolor = color.maroon
      sAQ.backcolor = color.maroon
      ElseIf vAxs = "AJs+" Then
      sAK.backcolor = color.maroon
      sAQ.backcolor = color.maroon
      sAJ.backcolor = color.maroon
      ElseIf vAxs = "ATs+" Then
      sAK.backcolor = color.maroon
      sAQ.backcolor = color.maroon....


      Al escribir "ATs+" en un TextBox, se colorean los rangos.. esto en teoria deberia funcionar, pero no lo hace.. ya que al aplicarlo en un Trackbar, se vuelve loco y no colorea bien los botones...


      Después intenté crear una Colección de objetos, pero tampoco sé como aplicarle el backcolor a la coleccion.

      De colecciones y arrays, no me entero de casi náh...
    • alejoMerchan
      alejoMerchan
      Bronce
      Registro: 08-01-2008 Artículos: 1.653
      lamento informarte que no manejo el equilator así que no capto muy bien la idea y no entiendo como quieres relacionar el textbox con el slider ??

      Un saludo
      alejoMerchan
    • chichospit
      chichospit
      Bronce
      Registro: 09-10-2008 Artículos: 1.075
      Hola!

      esto es el equilator.

      lo de relacionar la caja de texto con el slider, ya lo tengo solucionado..
      el codigo que tengo tanto en el slider como en la caja de texto, es que al cambiar de valor, resetee los colores, y despues coloree dependiendo del valor del Slider (o del Textbox)

    • alejoMerchan
      alejoMerchan
      Bronce
      Registro: 08-01-2008 Artículos: 1.653
      ok, ya tengo una idea :D , pero te tengo otra pregunta, la función Sub RAxs() es la que tienes vinculada al slider.

      Un saludo
      alejoMerchan
    • chichospit
      chichospit
      Bronce
      Registro: 09-10-2008 Artículos: 1.075
      Hola, ! perdón por la tardanza...

      Mecagoentó,,, joder, no hay manera de que funcione...

      Ahora he probado creando una coleccion de controles (botones) y aplicandole el color a la coleccion.. y también hace lo que le da la gana

      voy a intentar explicarlo por pasos...

      Declaro variables:
      Dim vAxs As Object
      Dim vKxs As Object

      Declaro Colecciones:
      Dim colRAxs As New Collection()
      Dim colRKxs As New Collection()


      Esto creo q se llaman funciones:
      Esto llena la coleccion con los elementos.
      Private Sub RAxs()
      If vAxs = "" Then colRAxs.Clear() 'Si no hay nada borra la coleccion.

      If vAxs = "AQs+" Then
      colRAxs.Clear()
      colRAxs.Add(sAK)
      colRAxs.Add(sAQ)
      ElseIf vAxs = "AJs+" Then
      colRAxs.Clear()
      colRAxs.Add(sAK)
      colRAxs.Add(sAQ)
      colRAxs.Add(sAJ)
      ElseIf vAxs = "ATs+" Then
      colRAxs.Clear()
      colRAxs.Add(sAK)
      colRAxs.Add(sAQ)
      colRAxs.Add(sAJ)
      colRAxs.Add(sAT)
      .......


      Después tengo un TextBox que asigna un valor a una variable (vRangoSC)
      Después tengo otro TextBox que asigna otra variable (vEMN)
      *las variables se asignan por entrada manual en el textbox o deslizando un slider que tienen asociado. eso creo q es irrelevante.


      el funcionamiento es, Si el valor de la variable vRangoSC es 1 ejecuta la funcion EMN_vs_RangoSC_1, dentro de esas funciones comprueba el valor de la segunda variable (vEMN), y dependiendo del valor de vEMN, llena la coleccion.

      If vRangoSC = 1 Then
      EMN_vs_RangoSC_1()
      ElseIf vRangoSC = 2 Then
      EMN_vs_RangoSC_2()



      Private Sub EMN_vs_RangoSC_1()

      If vEMN = 20 Then
      vPP = "KK+"

      vAxs = "A2s+"
      vKxs = ""
      vQxs = ""
      vJxs = "J9s+"
      vTxs = "T8s+"
      v9xs = "97s+"



      Despues le asigno el color a las colecciones.

      Dim VisibleCollection As Button

      For Each VisibleCollection In colRAxs
      VisibleCollection.BackColor = Color.DarkOrange
      Next



      Bueno.. el tema es algo asi.. la verdad es que ni yo me entero de lo que acabo de escribir, y dudo mucho que tu seas capaz de "visualizar" mi programita.. kekekek


      ahi queda...

      Saludos!
    • chichospit
      chichospit
      Bronce
      Registro: 09-10-2008 Artículos: 1.075
      He localizado el problema...

      al programa se le va la pinza cuando intento añadir elementos a la coleccion de 2 formas distintas.. a traves de una variable y directamente..

      tengo una funcion que si la variable vAx = "A5+" añada a la coleccion (ColeccionAx) los siguientes botones:
      A5
      A6
      A7
      A8

      hasta ahi funciona, el problema es cuando le especifico,
      if TrackBarValue = 4
      vAx = "A5+"
      ColeccionAx.add (A2)

      con esto en teoria me deberia meter en la coleccion (ColeccionAx) los siguientes elementos, A5, A6, A7, A8 Y A2