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

crear botones dinamicamente

Estas en el tema de crear botones dinamicamente en el foro de .NET en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 13/11/2011, 11:27
 
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
  #2 (permalink)  
Antiguo 13/11/2011, 11:30
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: crear botones dinamicamente

bien, he avanzado bastante, con que alguien me dijera como puedo hacer que el botón bajar me muestre de 36 en 36 botones siguiendo el orden de la collumna de la base de datos NORDEN y tanto hacia alante como hacia atrás...me ayudaría mucho, gracias

Última edición por guillebomtrasmiti; 13/11/2011 a las 11:55

Etiquetas: botones, dinamicamente, net
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 18:14.