Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/11/2011, 11:27
guillebomtrasmiti
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Pregunta crear botones dinamicamente

Hola amigos, espero explicarme bien, tengo una base de datos en ACCES que se llama DEPARTAMENTOS, ahí guardo los departamentos que el usuario va creando, el tema es que tengo que crearlos en FORMA DE BOTÓN en un formulario dónde entran 36 botones, lo que necesito es que cuando ya tenga 36...se pare me aparezca un botón de bajar y subir....y pueda bajar y que aparezcan otros 36 botones y si le doy a subir vuelva a los que tenía arriba...el código que llevo hecho es este
Cita:
Public Sub cargadepartamentos()

'Creo las variables que definen el area de botones por fila
Dim bxf, contador As Integer
'Creo la variables que contendran las dimensiones de los botones
Dim altoBoton, anchoBoton As Integer
'Creo las variables de los puntos en los cuales empiezo a pintar los botones
Dim x, y As Integer
'creo un máximo de botones
Dim bmx As Integer

'-------------------------------------------------------------------------------------------
bxf = 9 'Por ejemplo defino 9 botones por fila
bmx = 35 ' por ejempo máximo 36 botones de departamentos
cunetabmx = 0
contador = 0
anchoBoton = 50
altoBoton = 70
x = 10
y = 2

'--------------------------------------------------------------------
'realizo el fill para capturar los datos que necesito de departamento
Dim conlumna As New DataColumn
conlumna.ColumnName.Contains("Nombre")

cmd.Connection = conexion
cmd.CommandText = "select Nombre,NOrden from [departamento] ORDER BY NOrden ASC"

adapta.SelectCommand = cmd
adapta.Fill(undataset, "[departamento]")

For i As Integer = 0 To undataset.Tables("[departamento]").Rows.Count - 1
'Si alcanzo el maximo de columnas de la fila a pintar
If contador = bxf Then
'seteo el valor del contador
contador = 0
'doy la coordenada para que inicie otra fila para crear botones
y = y + anchoBoton
x = 10
End If

Dim nuevobotonProd As New Button
nuevobotonProd.BackColor = Color.Moccasin
'Agrego esta propiedad para darle el nombre al boton
nuevobotonProd.Name = undataset.Tables("[departamento]").Rows(i).Item(1).ToString()
nuevobotonProd.Location = New Point(x, y)
nuevobotonProd.Size = New Size(altoBoton, anchoBoton)
nuevobotonProd.Text = undataset.Tables("[departamento]").Rows(i).Item(0).ToString()

Me.Controls.Add(nuevobotonProd)

'Creo 1 evento para todos los botones
'AddHandler Me.Controls(undataset.Tables("departamento").Rows( i).Item(0).ToString()).Click, AddressOf btnEvent_Click
'Aumento contador de columnas
contador = contador + 1
'aumento la coordenada para crear otro boton en la siguiente columna
x = x + altoBoton
If cunetabmx = bmx Then
Dim botbaja As New Button
botbaja.BackColor = Color.Olive
botbaja.Name = "NBajar"
botbaja.Location = New Point(x = 12, y = 163)
botbaja.Size = New Size(altoBoton, anchoBoton)
botbaja.Text = "Bajar"
Me.Controls.Add(botbaja)

End If
cunetabmx = cunetabmx + 1
Next
accion = 0
End Sub