Foros del Web » Programación para mayores de 30 ;) » .NET »

Botones Dinamicos

Estas en el tema de Botones Dinamicos en el foro de .NET en Foros del Web. Buenos Dias amigos como estan? tengo una preguntica, agradeceria mucho su ayuda, la verdad soy nuevo en esto del Visual Basic mas con .NET. Lo ...

  #1 (permalink)  
Antiguo 12/03/2012, 07:42
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Pregunta Botones Dinamicos

Buenos Dias amigos como estan? tengo una preguntica, agradeceria mucho su ayuda, la verdad soy nuevo en esto del Visual Basic mas con .NET.

Lo que necesito es crear una serie de botones automaticamente de acuerdo a los datos que tengo en una Base de datos Mysql.

Por ejemplo:

Tengo una tabla en MYSQL de la sgte forma:

ID CAMPO1 CAMPO2

1 Valor1 Valor2
2 Valor3 Valor4
. . .
. . .
. . .

Lo que quiero es crear un boton por cada valor que este en la base de dato.

Se puede hacer esto?

Si me pueden ayudar con algo de codigo de ejemplo se los agradeceria enormente de verdad.

Feliz Día.
  #2 (permalink)  
Antiguo 12/03/2012, 08:33
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

Hola snowdogs, para crear botones dinamicos tienes que construirlos por codigo, ahora si quieres construirlos en base a una consulta, lo que puedes hacer es, almacenar tu consulta en un datatable y luego esa recorrerla con un For o For Each y en cada recorrido crearlo de esta manera :
Código vb:
Ver original
  1. 'Hago el recorrido al DataTable
  2. For Each fila As DataRow In DataTable.Rows
  3.  
  4. 'Creo el boton
  5. Dim MiBoton As New Button
  6. 'Declaro el nombre del boton para diferenciar de los demas
  7. MiBoton.Name = "btn" & fila("ID").ToString()
  8. 'Le indico el texto a mostrar
  9. MiBoton.Text = Fila("Descripcion").ToString()
  10. 'Le paso los valores de Tamaño
  11. MiBoton.Size = New Size(Convert.ToInt32(Fila("TamanoX")), Convert.ToInt32(Fila("TamanoY")))
  12. 'Le paso la ubicacion a mostrar dentro del formulario
  13. MiBoton.Location = New Point(Convert.ToInt32(Fila("PosicionX")), Convert.ToInt32(Fila("PosicionY")))
  14. 'Finalmente agregamos el boton al formulario
  15. Me.Controls.Add(MiBoton)
  16.  
  17. Next
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 12/03/2012, 09:54
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Gracias por tu respuesta Aquaventus, cuando me dices que cree un Datatable a que te refieres? en visual basic .net no lo veo al menos que este con otro nombre, el codigo que uso para conectarme a la bd es este:

Código vb:
Ver original
  1. Imports System.Data.Odbc
  2. Public Class Conexion
  3.     Dim datos As OdbcConnection
  4.     Sub New()
  5.         Conectar()
  6.     End Sub
  7.     Sub Conectar()
  8.         datos = New OdbcConnection("DSN=bdparley")
  9.         datos.Open()
  10.         If Not datos.State = ConnectionState.Open Then
  11.             MsgBox("Error en el servidor de base de datos")
  12.         End If
  13.     End Sub
  14. end class
  #4 (permalink)  
Antiguo 12/03/2012, 10:20
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

ahi un archivo llamado App.config, alli deberas agregarle la cadena de conexion o mejor dicho debería quedarte asi :
Código vb:
Ver original
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3.  
  4.   <connectionStrings>
  5.    
  6.     <add name="cnx" connectionString="Driver={MySQL ODBC 3.51 DRIVER};Server=192.168.3.6;Port=3306;Database=TUBASEDEDATOS;User=USUARIO;Password=PASSWORD;Option=3" providerName="System.Data.odbc"/>
  7.  
  8.   </connectionStrings>
  9.  
  10. </configuration>

Luego para que te conectes crear una Clase Llamada Conexion de esta estructura:
Código vb:
Ver original
  1. Imports System.Collections.Generic
  2. Imports System.Linq
  3. Imports System.Text
  4. Imports System.IO
  5. Imports System.Xml
  6. Imports System.Data
  7. Imports MySql.Data
  8. Imports System.Configuration
  9.  
  10. Namespace GRYPHOS_INCON.Conexion
  11.     Public Class Conexion
  12.  
  13.         Private configuration As Configuration = Nothing
  14.         Private section As ConnectionStringsSection = Nothing
  15.  
  16.         Public Function GetConex() As String
  17.             Try
  18.                 configuration = ConfigurationManager.OpenExeConfiguration(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString()).Remove(0, 6) & "\TUEXE.exe")
  19.                 section = TryCast(configuration.GetSection("connectionStrings"), ConnectionStringsSection)
  20.  
  21.  
  22.                 Return section.ConnectionStrings("cnx").ConnectionString
  23.  
  24.             Catch ex As Exception
  25.                 Return ex.Message
  26.             End Try
  27.         End Function
  28.     End Class
  29. End Namespace

Luego cuando quieras hacer una consulta que retorne como en este ejemplo un listado de haría uso de un Datatable(Que para usarlo es necesario importar el System.Data) :
Código vb:
Ver original
  1. Dim cnx As OdbcConnection
  2.  
  3. Private Sub Listado_de_Datos()
  4.  
  5.     cnx = New OdbcConnection(cc.GetConex())
  6.     Dim tabla As New DataTable()
  7.  
  8.     Try
  9.         Dim da As New OdbcDataAdapter("select * from TUTABLA", cnx)
  10.  
  11.         cnx.Open()
  12.  
  13.         da.Fill(tabla)
  14.  
  15.         cnx.Close()
  16.  
  17.         datos = tabla
  18.     Catch ex As Exception
  19.         MessageBox.Show(ex.Message, "TU SOFTWARE")
  20.     End Try
  21. End Sub
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 12/03/2012, 11:53
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Amigo me disculpas pero es que soy algo novato, yo hago conexion con la base de datos y todo, hasta tengo unos combo donde los datos los saco de la bd.. Como hago ahora para usar el codigo que me mencionaste de primero? Gracias
  #6 (permalink)  
Antiguo 12/03/2012, 13:19
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

Disculpa snowdog si te puse un codigo que no entiendes, haber muestrame como llenas tus combos para en base a eso facilitarte.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #7 (permalink)  
Antiguo 12/03/2012, 13:52
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Fijate tengo este codigo el cual llamo conexion.vb y tiene varias funciones, esto me lo facilito un amigo.

Código vb:
Ver original
  1. Imports System.Data.Odbc
  2. Public Class Conexion
  3.     Dim datos As OdbcConnection
  4.     Sub New()
  5.         Conectar()
  6.     End Sub
  7.     Sub Conectar()
  8.         datos = New OdbcConnection("DSN=bdparley")
  9.         datos.Open()
  10.         If Not datos.State = ConnectionState.Open Then
  11.             MsgBox("Error en el servidor de base de datos")
  12.         End If
  13.     End Sub
  14.     Function ejecutar(ByVal sql As String) As Boolean
  15.         Try
  16.             Dim comando As OdbcCommand
  17.             comando = New OdbcCommand(sql, datos)
  18.             comando.ExecuteNonQuery()
  19.             ejecutar = True
  20.         Catch ex As Exception
  21.             ejecutar = False
  22.             MsgBox(ex.ToString & " " & sql)
  23.  
  24.         End Try
  25.  
  26.     End Function
  27.     Function consultar(ByVal sql As String) As OdbcDataReader
  28.         Try
  29.             Dim comando As OdbcCommand
  30.             comando = New OdbcCommand(sql, datos)
  31.             consultar = comando.ExecuteReader()
  32.         Catch ex As Exception
  33.             consultar = Nothing
  34.             MsgBox("errror")
  35.  
  36.         End Try
  37.  
  38.     End Function
  39.     Public Sub llenarCombo(ByRef combo As ComboBox, ByVal sql As String)
  40.         Try
  41.             Dim comando As OdbcCommand
  42.             comando = New OdbcCommand(sql, datos)
  43.             Dim tabla As OdbcDataReader
  44.             tabla = comando.ExecuteReader()
  45.             combo.Items.Clear()
  46.             While tabla.Read
  47.                 combo.Items.Add(tabla.GetValue(0))
  48.                 'tabla.NextResult()
  49.            End While
  50.         Catch ex As Exception
  51.             MsgBox("Error" & ex.ToString)
  52.  
  53.         End Try
  54.  
  55.     End Sub
  56.     Function generarCodigo(ByVal Tabla As String, ByVal campoClave As String) As Integer
  57.         Dim sql As String = "SELECT MAX(`" & campoClave & "`) FROM `" & Tabla & "`"
  58.         Dim comando As OdbcCommand
  59.         comando = New OdbcCommand(sql, datos)
  60.         Dim rs As Odbc.OdbcDataReader
  61.         rs = comando.ExecuteReader
  62.         If rs.Read Then
  63.             If IsNumeric(rs.GetValue(0)) Then
  64.                 generarCodigo = rs.GetValue(0) + 1
  65.             Else
  66.                 generarCodigo = 1
  67.             End If
  68.  
  69.         Else
  70.             generarCodigo = 1
  71.         End If
  72.     End Function
  73.  
  74.  
  75.     Function MostrarCampo(ByVal Tabla As String, ByVal Campo As String, ByVal filtro As String) As String
  76.         Dim rs As OdbcDataReader
  77.         Dim sql As String = "select *from `" & Tabla & "` where " & filtro
  78.         Dim comando As OdbcCommand
  79.         comando = New OdbcCommand(sql, datos)
  80.  
  81.         rs = comando.ExecuteReader
  82.         If Not rs.Read Then
  83.             MostrarCampo = ""
  84.         Else
  85.             MostrarCampo = rs(Campo)
  86.         End If
  87.  
  88.     End Function
  89.  
  90. End Class
  91.  
  92.  
  93. de esta manera lleno un combo:
  94.  
  95. [HIGHLIGHT="vb"]
  96. Sub Inicializar()
  97.         Dim conex As New Conexion
  98.         conex.llenarCombo(ComboBox1, "select nombre from liga where codDeporte=1")
  99.         limpiar()
  100.         Bloquear(False)
  101.  
  102.     End Sub
[/HIGHLIGHT]
  #8 (permalink)  
Antiguo 12/03/2012, 13:53
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Coloque un codigo dentro del otro sin querer el formulario donde lleno el combo queda asi:

Código vb:
Ver original
  1. Sub Inicializar()
  2.         Dim conex As New Conexion
  3.         conex.llenarCombo(ComboBox1, "select nombre from liga where codDeporte=1")
  4.         limpiar()
  5.         Bloquear(False)
  6.  
  7.     End Sub
  #9 (permalink)  
Antiguo 12/03/2012, 14:18
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

Hola! El combo lo puedes llenar usando el mismo metodo que un llenado de grilla mediante un Datatable, pero te paso el codigo de llenado de grilla :
Código vb:
Ver original
  1. Public Function Listado_de_Datos(ByVal sql As String) As DataTable
  2.         Dim tabla As New DataTable()
  3.         Try
  4.             Dim adapter As OdbcDataAdapter
  5.             adapter = New OdbcDataAdapter(sql, datos)
  6.             adapter.Fill(tabla)
  7.         Catch ex As Exception
  8.             MsgBox("Error" & ex.ToString)
  9.             Return Nothing
  10.         End Try
  11.         Return tabla
  12.     End Function

luego por ejemplo en un evento click de un boton haces esto :

Código vb:
Ver original
  1. TuDataGridView.DataSource = Listado_de_Datos("Select*From TuTabla")
y ya está. Cualquier otro inconveniente nos los dices. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #10 (permalink)  
Antiguo 15/03/2012, 10:21
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Gracias por tus respuestas Aquaventus, fijate tengo el siguiente codigo para hacer parte eso:

Código vb:
Ver original
  1. Public Class Form1
  2.     Dim logros(10) As Label
  3.     Dim codDeporte As Integer = 1 'Beisbol
  4.    Dim Partidos() As GroupBox
  5.     Dim totalPartidos As Integer = 0
  6.     Sub CrearPartido(ByVal nombreEquipo1 As String, ByVal nombreEquipo2 As String)
  7.         ReDim Preserve Partidos(totalPartidos)
  8.         Dim equipo1 As New Label
  9.         Dim equipo2 As New Label
  10.         equipo1.Text = nombreEquipo1
  11.         equipo2.Text = nombreEquipo2
  12.         equipo1.AutoSize = True
  13.         equipo2.AutoSize = True
  14.         equipo1.Location = New Point(10, 15)
  15.         equipo2.Location = New Point(10, 45)
  16.         Partidos(totalPartidos) = New GroupBox
  17.         Partidos(totalPartidos).Size = New Size(800, 70)
  18.         Partidos(totalPartidos).BackColor = Color.Aqua
  19.         Partidos(totalPartidos).Location = New Point(1, 40 * (totalPartidos + 1))
  20.         Partidos(totalPartidos).Controls.Add(equipo1)
  21.         Partidos(totalPartidos).Controls.Add(equipo2)
  22.         Me.Controls.Add(Partidos(totalPartidos))
  23.         totalPartidos = totalPartidos + 1
  24.     End Sub
  25.     Sub CrearFormulario()
  26.         Dim tabla As OdbcDataReader
  27.         Dim conex As New Conexion
  28.         Dim contador As Integer = 0
  29.         Dim x As Integer = 100
  30.         Dim separacion As Integer = 75
  31.         tabla = conex.consultar("select *from tipoapuesta where codDeporte = " & codDeporte)
  32.         While tabla.Read
  33.             logros(contador) = New Label
  34.             logros(contador).Text = tabla.GetValue(2)
  35.             logros(contador).Location = New Point(x, 20)
  36.             logros(contador).AutoSize = True
  37.             Me.Controls.Add(logros(contador))
  38.             contador = contador + 1
  39.             x = x + separacion
  40.         End While
  41.  
  42.     End Sub
  43.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  44.         CrearFormulario()
  45.         CrearPartido("Cardenales", "Leones")
  46.     End Sub
  47.  
  48. End Class

Lo que quiero por ahora es que en ves de que me salga Cardenale y Leones el cual agregue manualmente, quiero que esos 2 nombres lo saque de la base de dato, teniendo en cuenta que seran 2 nombres por cada groupbox, osea se van a crear groupbox por cada 2 nombres de esos, no se si me explico..
  #11 (permalink)  
Antiguo 15/03/2012, 10:34
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

Hola snowdogs! Tendrás que crear un metodo parecido al de "Crear Formulario", pero aqui no crearás Labels sino que haces tu consulta en la base de datos de los equipos a traer y dentro de su while como lees para crear los labels le pases el método "Crear Partido" y le pases los valores. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #12 (permalink)  
Antiguo 16/03/2012, 08:45
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Hola Aquaventus como estas? porfin logre hacer los botones ahora tengo otro problemita que creo es mas facil.. lo que quiero hacer es:

Si se me crean por ejemplo 8 botones, quiero hacer que por lo menos si presiono el boton 1 al presionar el boton 2 me salga un msj diciendo que esa combinacion no esta permitida y no haga nada.. hay varias combinaciones que no son permitidas..

El codigo que tengo para crear los botones es este:

Código vb:
Ver original
  1. Public Class Form1
  2.     Dim logros(10) As Label
  3.     Dim codDeporte As Integer = 1 'Beisbol
  4.    Dim Partidos() As GroupBox
  5.     Dim totalPartidos As Integer = 0
  6.     Dim totalLogros As Integer = 0
  7.     Dim BotonEquipo1(,) As Button
  8.     Dim BotonEquipo2(,) As Button
  9.     Sub CrearPartido(ByVal nombreEquipo1 As String, ByVal nombreEquipo2 As String)
  10.         ReDim Preserve Partidos(totalPartidos)
  11.         Dim x As Integer = 100
  12.         Dim i As Integer
  13.         Dim separacion As Integer = 75
  14.         Dim equipo1 As New Label
  15.         Dim equipo2 As New Label
  16.         equipo1.Text = nombreEquipo1
  17.         equipo2.Text = nombreEquipo2
  18.         equipo1.AutoSize = True
  19.         equipo2.AutoSize = True
  20.         equipo1.Location = New Point(15, 20)
  21.         equipo2.Location = New Point(15, 55)
  22.         Partidos(totalPartidos) = New GroupBox
  23.         Partidos(totalPartidos).Size = New Size(800, 90)
  24.         'Partidos(totalPartidos).BackColor = Color.Gray
  25.        Partidos(totalPartidos).Location = New Point(4, 90 * (totalPartidos + 1))
  26.         Partidos(totalPartidos).Controls.Add(equipo1)
  27.         Partidos(totalPartidos).Controls.Add(equipo2)
  28.         For i = 1 To totalLogros
  29.             ReDim BotonEquipo1(totalPartidos, i)
  30.             BotonEquipo1(totalPartidos, i) = New Button
  31.             BotonEquipo1(totalPartidos, i).Size = New Size(33, 20)
  32.             BotonEquipo1(totalPartidos, i).Location = New Point(x, 20)
  33.             Partidos(totalPartidos).Controls.Add(BotonEquipo1(totalPartidos, i))
  34.  
  35.             ReDim BotonEquipo2(totalPartidos, i)
  36.             BotonEquipo2(totalPartidos, i) = New Button
  37.             BotonEquipo2(totalPartidos, i).Size = New Size(33, 20)
  38.             BotonEquipo2(totalPartidos, i).Location = New Point(x, 55)
  39.             Partidos(totalPartidos).Controls.Add(BotonEquipo2(totalPartidos, i))
  40.  
  41.             x = x + separacion
  42.  
  43.         Next
  44.  
  45.         Me.Controls.Add(Partidos(totalPartidos))
  46.         totalPartidos = totalPartidos + 1
  47.     End Sub
  48.     Sub CrearFormulario()
  49.         Dim tabla As OdbcDataReader
  50.         Dim conex As New Conexion
  51.         Dim contador As Integer = 0
  52.         Dim x As Integer = 100
  53.         Dim separacion As Integer = 75
  54.         tabla = conex.consultar("select *from tipoapuesta where codDeporte = " & codDeporte)
  55.         While tabla.Read
  56.             logros(contador) = New Label
  57.             logros(contador).Text = tabla.GetValue(2)
  58.             logros(contador).Location = New Point(x, 40)
  59.             logros(contador).AutoSize = True
  60.             Me.Controls.Add(logros(contador))
  61.             contador = contador + 1
  62.             x = x + separacion
  63.         End While
  64.         totalLogros = contador
  65.     End Sub
  66.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  67.         CrearFormulario()
  68.         mostrarJuegos()
  69.     End Sub
  70.     Sub mostrarJuegos()
  71.         Dim fecha As String
  72.         Dim sql As String
  73.         Dim Conex As New Conexion
  74.         Dim Tabla As OdbcDataReader
  75.         fecha = Format(Now, "yyyy-MM-dd")
  76.         sql = "SELECT codPartido,fecha,horaInicio, a.nombre,b.nombre FROM partidos p, equipos a, equipos b WHERE p.nombreEA = a.codEquipo AND p.nombreEB = b.codEquipo AND fecha='" & fecha & "'"
  77.         Tabla = Conex.consultar(sql)
  78.         While Tabla.Read
  79.             CrearPartido(Tabla(3), Tabla(4))
  80.         End While
  81.  
  82.  
  83.     End Sub
  84.  
  85. End Class

Espero me puedas ayudar con algo de codigo amigo, que estes bien y disculpa tanta molestia.
  #13 (permalink)  
Antiguo 16/03/2012, 09:49
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

Hola snowdogs, dame ejemplos de combinaciones no permitidas sino no entiendo lo que deseas hacer. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #14 (permalink)  
Antiguo 16/03/2012, 10:10
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Como te dije se crean normalmente 18 botones por partido, 9 para el equipo A y 9 para el equipo B, una de las combinaciones que no esta permitida es el boton 1 y el boton 10..
  #15 (permalink)  
Antiguo 16/03/2012, 10:17
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

Pero cuales son los botones que se crean? Cual es el nombre de cada boton? que funcion cumple? Tú eres el que entiende esto porque lo tienes que desarrollar, pero yo no entiendo porqué.... nosé cuales son las restricciones de las combinaciones porque no conosco la lógica de tu sistema. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #16 (permalink)  
Antiguo 16/03/2012, 10:23
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Bueno en el codigo que te mostre arriba la verdad no veo donde se le coloque nombre a cada boton que se crea.. al yo presionar cada boton me va mostrar el nombre del equi al que pertenece ese boton y otras cositas, pero lo que quiero es que no me deje presionar esos 2 botones si presione el boton 1 no puedo presionar el boton 2 si lo presiono me debe dar un mensaje que es una combinacion invalida..

el codigo donde creo los botones y otras cosas qe lleva esta pantalla es:

Código vb:
Ver original
  1. Public Class Form1
  2.         Dim logros(10) As Label
  3.         Dim codDeporte As Integer = 1 'Beisbol
  4.        Dim Partidos() As GroupBox
  5.         Dim totalPartidos As Integer = 0
  6.         Dim totalLogros As Integer = 0
  7.         Dim BotonEquipo1(,) As Button
  8.         Dim BotonEquipo2(,) As Button
  9.         Sub CrearPartido(ByVal nombreEquipo1 As String, ByVal nombreEquipo2 As String)
  10.             ReDim Preserve Partidos(totalPartidos)
  11.             Dim x As Integer = 100
  12.             Dim i As Integer
  13.             Dim separacion As Integer = 75
  14.             Dim equipo1 As New Label
  15.             Dim equipo2 As New Label
  16.             equipo1.Text = nombreEquipo1
  17.             equipo2.Text = nombreEquipo2
  18.             equipo1.AutoSize = True
  19.             equipo2.AutoSize = True
  20.             equipo1.Location = New Point(15, 20)
  21.             equipo2.Location = New Point(15, 55)
  22.             Partidos(totalPartidos) = New GroupBox
  23.             Partidos(totalPartidos).Size = New Size(800, 90)
  24.             'Partidos(totalPartidos).BackColor = Color.Gray
  25.            Partidos(totalPartidos).Location = New Point(4, 90 * (totalPartidos + 1))
  26.             Partidos(totalPartidos).Controls.Add(equipo1)
  27.             Partidos(totalPartidos).Controls.Add(equipo2)
  28.             For i = 1 To totalLogros
  29.                 ReDim BotonEquipo1(totalPartidos, i)
  30.                 BotonEquipo1(totalPartidos, i) = New Button
  31.                 BotonEquipo1(totalPartidos, i).Size = New Size(33, 20)
  32.                 BotonEquipo1(totalPartidos, i).Location = New Point(x, 20)
  33.                 Partidos(totalPartidos).Controls.Add(BotonEquipo1(totalPartidos, i))
  34.      
  35.                 ReDim BotonEquipo2(totalPartidos, i)
  36.                 BotonEquipo2(totalPartidos, i) = New Button
  37.                 BotonEquipo2(totalPartidos, i).Size = New Size(33, 20)
  38.                 BotonEquipo2(totalPartidos, i).Location = New Point(x, 55)
  39.                 Partidos(totalPartidos).Controls.Add(BotonEquipo2(totalPartidos, i))
  40.      
  41.                 x = x + separacion
  42.      
  43.             Next
  44.      
  45.             Me.Controls.Add(Partidos(totalPartidos))
  46.             totalPartidos = totalPartidos + 1
  47.         End Sub
  48.         Sub CrearFormulario()
  49.             Dim tabla As OdbcDataReader
  50.             Dim conex As New Conexion
  51.             Dim contador As Integer = 0
  52.             Dim x As Integer = 100
  53.             Dim separacion As Integer = 75
  54.             tabla = conex.consultar("select *from tipoapuesta where codDeporte = " & codDeporte)
  55.             While tabla.Read
  56.                 logros(contador) = New Label
  57.                 logros(contador).Text = tabla.GetValue(2)
  58.                 logros(contador).Location = New Point(x, 40)
  59.                 logros(contador).AutoSize = True
  60.                 Me.Controls.Add(logros(contador))
  61.                 contador = contador + 1
  62.                 x = x + separacion
  63.             End While
  64.             totalLogros = contador
  65.         End Sub
  66.         Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  67.             CrearFormulario()
  68.             mostrarJuegos()
  69.         End Sub
  70.         Sub mostrarJuegos()
  71.             Dim fecha As String
  72.             Dim sql As String
  73.             Dim Conex As New Conexion
  74.             Dim Tabla As OdbcDataReader
  75.             fecha = Format(Now, "yyyy-MM-dd")
  76.             sql = "SELECT codPartido,fecha,horaInicio, a.nombre,b.nombre FROM partidos p, equipos a, equipos b WHERE p.nombreEA = a.codEquipo AND p.nombreEB = b.codEquipo AND fecha='" & fecha & "'"
  77.             Tabla = Conex.consultar(sql)
  78.             While Tabla.Read
  79.                 CrearPartido(Tabla(3), Tabla(4))
  80.             End While
  81.      
  82.      
  83.         End Sub
  84.      
  85.     End Class
  86.  
  87. No se como explicartelo de mejor manera amigo jejeje y disculpa la molestia..
  #17 (permalink)  
Antiguo 16/03/2012, 11:22
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

mmm haber snowdogs para que no te compliques la vida captura la imagen de tu formulario ejecutado y lo subes a imageshack y me pones el link para tener una idea. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #18 (permalink)  
Antiguo 16/03/2012, 11:34
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Listo hermano aqui esta la imagen: http://imageshack.us/photo/my-images/109/imagen12l.jpg/

Ese es el form completo que crea el codigo que te pase.. hay varias combinaciones que no se deben permitir pero con saber 1 las demas las hago yo.. por ejemplo una de las combinaciones es el boton 1 y el boton 10 si presiono uno de eso el otro no se puede. si lo presiono debe salir el ms de que no esta permitida esa combinacion..

Espero ahora si me entiendas amigo jejeje..
  #19 (permalink)  
Antiguo 17/03/2012, 09:48
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

Hola snowdogs! Si te entiendo, lo que pasa en que no tienen asignados ningun evento tus botones... Pero el problema no es alli sino la validación. Aun no se me ocurre como validar lo que pides... pero te paso lo que falta para que funcione el evento Click :

* Crea un método que sea global para los botones que creas, y es aquí donde se realizará las validaciones... :
Código vb:
Ver original
  1. Private Sub btnGeneral_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
  2. 'VALIDACIONES
  3. End Sub

*Asignarle el evento a los botones en el mismo instante que los creas :
Código vb:
Ver original
  1. AddHandler BotonEquipo1(totalPartidos, i).Click, AddressOf btnGeneral_Click
  2. AddHandler BotonEquipo2(totalPartidos, i).Click, AddressOf btnGeneral_Click
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #20 (permalink)  
Antiguo 18/03/2012, 09:11
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Muchas gracias aquaventus, me a servido de mucho tu ayuda.. si se te ocurre algo con las validaciones me dices amigo porfavor.. que estes bien y cuidate.
  #21 (permalink)  
Antiguo 27/03/2012, 08:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Como estas aquaventus? No se te ocurre nada todavia amigo?? me quede trancado... no sabes como hacer para colocarle el texto a esos botones de acuerdo tambien a los datos que esten en la base de dato?? aqui te dejo una imagen mas actualizada para que veas.. http://imageshack.us/photo/my-images/571/pantallax.jpg/
  #22 (permalink)  
Antiguo 27/03/2012, 08:58
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

Hola snowdogs, el problema no es el texto ya que eso lo puedes hacer asi :
Código vb:
Ver original
  1. ReDim BotonEquipo1(totalPartidos, i)
  2.                 BotonEquipo1(totalPartidos, i).Text = "el texto que quieras"
El problema es la validacion que comentaste nada mas.Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #23 (permalink)  
Antiguo 27/03/2012, 09:04
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Si claro lo de la validacion ya creo que sera lo ultimo que realice, ya que ccreo es lo mas complicado... Lo del texto que me dices no creo que pueda ser asi porque? Los texto de cada boton lo debe sacar de la base dato, hoy tienen unos textos, mañana tienen otro y asi cada dia... No se si me entiendes..
  #24 (permalink)  
Antiguo 27/03/2012, 09:20
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

por eso, la propiedad para pasarle el texto es el TEXT, asi como le pasas a tus labels el texto de igualmanera pasaselos a los botones no crees?. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #25 (permalink)  
Antiguo 27/03/2012, 09:46
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Ah ok si claro entiendo.. Acabo de probar 1000 cosas pero nada que me sale jejejeje.. lo que pasa es lo que llevo fue por un amigo que me estaba ayudando pero no lo vi maa :s...
  #26 (permalink)  
Antiguo 27/03/2012, 10:44
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Ayudame hermano :(. de verdad disculpa la molestia de verdad..
  #27 (permalink)  
Antiguo 27/03/2012, 11:05
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

la solucion la tienes en tu mismo código... nada mas es reutilizarlo y modificarlo... Asi como tu método MostrarJuegos() has una consulta similar pero para tus botones y los creas... pasandole como te dije el .Text = "texto"(esto ya lo puedes jalar por campos como en tu ODBC que tienes en tu mismo método... )
Yo te estoy ayudando, pero ya hacertelo por tí es ya demasiado... ahora solo te estoy guiando.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #28 (permalink)  
Antiguo 10/04/2012, 10:40
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

No te voy a dar la solución pero te doy algo similar, espero que con esto sí entiendas... Por que es algo que ya lo tienes hecho en tu propio codigo pero no entiendo xq no lo entiendes...:
haces tu consulta a tu bd para traer los valores
Código vb:
Ver original
  1. Dim tabla As OdbcDataReader
  2.             Dim conex As New Conexion
  3.             tabla = conex.consultar("select boton1,boton2,boton3,boton4,boton5,boton6,boton7,boton8,boton9  from botones")
  4.  
  5. While tabla.Read
  6.  
  7.  For i = 1 To totalLogros
  8.            
  9. ReDim BotonEquipo1(totalPartidos, i)
  10.                 BotonEquipo1(totalPartidos, i) = New Button
  11.                 BotonEquipo1(totalPartidos, i).Text = tabla.GetValue(i - 1)
  12.                 BotonEquipo1(totalPartidos, i).Size = New Size(33, 20)
  13.                 BotonEquipo1(totalPartidos, i).Location = New Point(x, 20)
  14.                 Partidos(totalPartidos).Controls.Add(BotonEquipo1(totalPartidos, i))
  15.      
  16.                 ReDim BotonEquipo2(totalPartidos, i)
  17.                 BotonEquipo2(totalPartidos, i) = New Button
  18.                 BotonEquipo2(totalPartidos, i).Text = tabla.GetValue(i - 1)
  19.                 BotonEquipo2(totalPartidos, i).Size = New Size(33, 20)
  20.                 BotonEquipo2(totalPartidos, i).Location = New Point(x, 55)
  21.                 Partidos(totalPartidos).Controls.Add(BotonEquipo2(totalPartidos, i))
  22.      
  23.                 x = x + separacion
  24.      
  25.             Next
  26.  
  27. End While
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Última edición por Aquaventus; 10/04/2012 a las 11:27 Razón: error
  #29 (permalink)  
Antiguo 10/04/2012, 13:12
 
Fecha de Ingreso: noviembre-2009
Mensajes: 89
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Botones Dinamicos

Hice lo siguiente pero ahora no me muestra ni siquiera los botones:

Código vb:
Ver original
  1. Dim tabla As OdbcDataReader
  2.                 Dim conex As New Conexion
  3.                 tabla = conex.consultar("select logro  from logros")
  4.      
  5.      For i = 1 To totalLogros
  6.                
  7.     ReDim BotonEquipo1(totalPartidos, i)
  8.                     BotonEquipo1(totalPartidos, i) = New Button
  9.                     BotonEquipo1(totalPartidos, i).Text = tabla.GetValue(i - 1)
  10.                     BotonEquipo1(totalPartidos, i).Size = New Size(33, 20)
  11.                     BotonEquipo1(totalPartidos, i).Location = New Point(x, 20)
  12.                     Partidos(totalPartidos).Controls.Add(BotonEquipo1(totalPartidos, i))
  13.          
  14.                     ReDim BotonEquipo2(totalPartidos, i)
  15.                     BotonEquipo2(totalPartidos, i) = New Button
  16.                     BotonEquipo2(totalPartidos, i).Text = tabla.GetValue(i - 1)
  17.                     BotonEquipo2(totalPartidos, i).Size = New Size(33, 20)
  18.                     BotonEquipo2(totalPartidos, i).Location = New Point(x, 55)
  19.                     Partidos(totalPartidos).Controls.Add(BotonEquipo2(totalPartidos, i))
  20.          
  21.                     x = x + separacion
  22.          
  23.                 Next

Lo unico que hice fue cambiar la consulta LOGRO es donde estan los textos cada registro es el nombre de 1 boton y LOGROS es la tabla..
  #30 (permalink)  
Antiguo 10/04/2012, 13:16
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Botones Dinamicos

hola snowdog, verifica nuevamente porque lo modifique con lo que estaba inicialmente.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Etiquetas: vbnet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:36.