Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Crear botones dinamicamente

Estas en el tema de Crear botones dinamicamente en el foro de Visual Basic clásico en Foros del Web. Hola buenas trabajo con vb6 y una base de datos access no conozco mucho visual ya que e programado en otros lenguajes y no mucho ...
  #1 (permalink)  
Antiguo 30/05/2008, 04:53
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Crear botones dinamicamente

Hola buenas trabajo con vb6 y una base de datos access no conozco mucho visual ya que e programado en otros lenguajes y no mucho en este, por esto mi pregunta es la siguiente

Como puedo crear un boton dinamicamente es decir que mediante un bucle o como sea crear botones, mi problema es el siguiente

Resulta que accedo a la base de datos para mostrar unos datos, estos son unos textbox y unas label con el nombre y apellidos de un empelado, y cuando pulso el boton que les comento debe aparecer un nuevo formulario donde en este aparece toda la información del empleado, esto lo he realizado un un datagrid pero mi jefa lo quiere en textbox y con botones, como podria realizar esto?

También lo diseñe con un formulario con textbox con todos los datos y botones de siguiente y anterior donde aparece la informacion de los empleados, pero tampoco lo quiere asi mi jefa si no de la manera que ya expuse, me puede ayudar alguien? muchas gracias a todos

No se si me explique claramentes si no preguntenme porfavor y lo intentare explicar mejor, gracias y saludos
  #2 (permalink)  
Antiguo 30/05/2008, 12:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Crear botones dinamicamente

Para crear debes tener una matriz de controles, por ejemplo Text1(0) y Command1(0), y con Load vas creando los controles. Por ejemplo, crear 5 TextBox y 5 Botones uno debajo del otro:
Código:
 
Dim Looping As Byte
For Looping = 1 To 5
         Load Text1(Looping)
         Text1(Looping).Left = Text1(0).Left
         Text1(Looping).Top = Text1(Looping - 1).Top + Text1(Looping - 1).Height
         Text1(Looping).Visible = True
         Load Command1(Looping)
         Command1(Looping).Left = Command1(0).Left
         Command1(Looping).Top = Command1(Looping - 1).Top + Command1(Looping - 1).Height
         Command1(Looping).Visible = True
Next Looping
Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 02/06/2008, 08:10
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear botones dinamicamente

Hola amigo, primero darte muchas gracias por la contestación tan rápida, pero si no te importa, te quisiera realizar una pregunta más, la cuestión que deseo realizarte es la siguiente, como (si se te ocurre) podria hacer para que en lugar de hacer un bucle de 5 repeticiones como muy bien me sugieres, seria realizar ese bucle para el número de usuarios que hay, y no me valdria un número ya que en el caso de que se inserten mas usuarios, lo realice el bucle entero, no se si me explico, si no es asi te agradeceria que me lo dijeras e intentaria explicarme mejor.

Otra duda text1 y Command1 que serian los parametros del array? muchisimas gracias y saludos
  #4 (permalink)  
Antiguo 03/06/2008, 06:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Crear botones dinamicamente

Cita:
Iniciado por OSC99 Ver Mensaje
Hola amigo, primero darte muchas gracias por la contestación tan rápida, pero si no te importa, te quisiera realizar una pregunta más, la cuestión que deseo realizarte es la siguiente, como (si se te ocurre) podria hacer para que en lugar de hacer un bucle de 5 repeticiones como muy bien me sugieres, seria realizar ese bucle para el número de usuarios que hay, y no me valdria un número ya que en el caso de que se inserten mas usuarios, lo realice el bucle entero, no se si me explico, si no es asi te agradeceria que me lo dijeras e intentaria explicarme mejor.

Otra duda text1 y Command1 que serian los parametros del array? muchisimas gracias y saludos
Para saber la cantidad de usuarios que hay en la base de datos, dependerá del tipo de conexión que estés utilizando... y pasarle esa cantidad al bucle.

Por ejemplo:
Código:
 
Dim Looping As Byte
'suponiendo que en la variable 'Usuarios' hayas guardado cuántos usuarios hay
For Looping = 1 To Usuarios
No entendí, ¿qué quieres decir con el parámetro del array?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 04/06/2008, 10:31
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear botones dinamicamente

Hola buenas:

Ya hice gracias al código que me pasaste los botones y cuadros y también etiquetas, muchas gracias, lo del array ya lo solucione también, gracias esque me exprese mal, ahora tengo otro problema. En los botones que creo mediante el array quiero programar sobre ellos para que me envien a otro formulario, pero no puedo programar sobre ellos, sabrias decirme como podría hacerlo, la verdad esque no puedo ya que no "existen" como procedimiento, ya que se generan cuando se ejecuta el array entonces, como podria programarlos, los e intentado declarar a mano, pero claro no puedo ya que pico private sub y todo lo demas pero no se como se llama el boton ni puedo hacer doble click sobre el para programarlo porque no aparece en diseño como es lógico, se ocurre algo a alguien, agradecer enormemente la ayuda prestada

saludos y mcuhas gracias
  #6 (permalink)  
Antiguo 04/06/2008, 12:42
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Crear botones dinamicamente

Puedes programarlos en el Command1(0), haz doble click sobre él y te aparecerá:
Código:
Private Sub Command1_Click(Index As Integer)
En Index te devolverá sobre cuál de los botones se hizo Click.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 11/06/2008, 05:18
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear botones dinamicamente

Hola amigo perdon la tardanza estuve liaillo
NO creo entender que es Command(0) me lo podrias explicar porfavor muchas gracias
  #8 (permalink)  
Antiguo 11/06/2008, 11:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Crear botones dinamicamente

Cita:
Iniciado por OSC99 Ver Mensaje
Hola amigo perdon la tardanza estuve liaillo
NO creo entender que es Command(0) me lo podrias explicar porfavor muchas gracias
Pues bien, en el modo diseño tienes un solo botón, pues bien al programar el evento Click de ese botón te aparece lo siguiente:
Código:
 
Private Sub Command1_Click(Index As Integer)
Eso te servirá para programar el resto de los botones ya que en Index te devolverá cuál de los botones se ha presionado...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 12/06/2008, 08:56
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear botones dinamicamente

Hola gracias de nuevo por seguir intentado ayudarme

El problema amigo es que cuando escribo el código que me muestras al principio del foro me subraya Text1(0) y Comman1(0) no se si es porque no realice bien la declaración de las variables ya que estas 2 son variables cierto?

Me podrias por favor decir como tendria que declararlas? uso vb .net
gracias y perdon por mi ignorancia pero no e utilizado mucho este lenguaje de programación muchas gracias David

Saludos
  #10 (permalink)  
Antiguo 12/06/2008, 09:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Crear botones dinamicamente

Cita:
Iniciado por OSC99 Ver Mensaje
Hola gracias de nuevo por seguir intentado ayudarme

El problema amigo es que cuando escribo el código que me muestras al principio del foro me subraya Text1(0) y Comman1(0) no se si es porque no realice bien la declaración de las variables ya que estas 2 son variables cierto?

Me podrias por favor decir como tendria que declararlas? uso vb .net
gracias y perdon por mi ignorancia pero no e utilizado mucho este lenguaje de programación muchas gracias David

Saludos
En realidad no sé si Vb.Net permite crear una matriz de controles (Text1 y Command1 son matrices de controles, no variables), me refería a VB6.
Quizás alguien que sepa más de VB.Net puede ayudarte.

Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 12/06/2008, 10:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear botones dinamicamente

Ah vale muchas gracias por la información aun así como seria para crear en vb una matriz de controles, por probar a ver si cuela muchas gracias por todo compañero

saludos
  #12 (permalink)  
Antiguo 27/08/2008, 14:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 1
Antigüedad: 15 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Crear botones dinamicamente

Buenas tardes,

Tengo una pregunta similar, estoy haciendo un sistema a una empresa que tiene un cierto grupo de máquinas.

Yo quiero tener un espacio en mi form de VB .NET 2005 donde se consulte la base de datos y dependiendo de la cantidad de máquinas que hayan en la tabla con este nombre, se divida el espacio asignado en partes iguales (tantas partes como máquinas) y se coloque un botón por cada máquina con su respectivo número de máquina.

Estoy usando MySQL.

Si no me hice entender bien por favor háganmelo saber.

Gracias
  #13 (permalink)  
Antiguo 27/08/2008, 15:42
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Crear botones dinamicamente

bueno q te muevan al foro de .net

pero la solucion a eso es usar un tablelayoutpanel (q esta dentro del toolbox en containers) y dependiendo el numero de botones le digas al tlp.Rows=nfilas , tlp.Columns=ncolumnas necesarias y depues solo haga sun

tlb.Controls.Add(boton,columna,fila)

dentro del o los ciclos necesarios
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #14 (permalink)  
Antiguo 28/08/2008, 07:24
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Crear botones dinamicamente

Código:
For i As Integer = 0 To (cont - 1)
            'For que recorre la cantidad de botones en el archivo de texto
            Dim Boton As New Button 'Declaracion de boton
            Boton.Name = (TextBox1.Lines(i) & (i)) + i.ToString() 'Nombre del boton
            Boton.Text = TextBox1.Lines(i) 'Texto en el boton            
            Boton.Height = 22 'Tamaño alto de cada boton
            Boton.Width = 137 'Tamaño largo de cada boton
            Boton.Location = New Point(TxtPoint.X + 10, TxtPoint.Y) 'Localizacion en el Form del boton            TxtPoint.Y += Boton.Height + 4
            AddHandler Boton.Click, AddressOf xClick
            'Finalmente agrega el boton
            Controls.Add(Boton)
        Next i
  #15 (permalink)  
Antiguo 16/02/2010, 18:53
 
Fecha de Ingreso: marzo-2008
Ubicación: Beijing
Mensajes: 20
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Crear botones dinamicamente

La solucion siguiente me tomo como media tarde de investigacion y desarrollo, pero se pudo, aplausos para todos ustedes y para mi por colaborar.

Que hace el programa? :
Este programa crea botones dinamicamente y no solo eso!, tambien te va diciendo qué botones se han ido creando, y algo mas!, tambien cuando das click sobre cualquiera de los botones creados dinamicamente te dice su nombre.

Que requerimientos tiene este programa?
-Form1 'Formulario de trabajo
-FlowLayoutPanel1 'Para no preocuparnos por la ubicacion de los botones

El código de una vez!!!!:
Public Class Form1
Friend WithEvents BOTON As Button 'La clave para poder crearle eventos

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
i = 0
Dim t As Integer
t = 0
While i < 10
BOTON = New Button
BOTON.Name = "id" & i
BOTON.Parent = Me.FlowLayoutPanel1
BOTON.Text = BOTON.Name
AddHandler BOTON.Click, AddressOf PrintMessage

Me.FlowLayoutPanel1.Controls.Add(BOTON)
BOTON.Show()

i = i + 1
End While


End Sub

Private Sub PrintMessage(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim producto As String
Dim i, tam As Integer
i = 0
tam = sender.ToString.Length()
producto = ""
While i < tam - 35
producto = producto + sender.ToString.Chars(i + 35)
i = i + 1
End While

MessageBox.Show(producto)


End Sub

Private Sub FlowLayoutPanel1_ControlAdded(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles FlowLayoutPanel1.ControlAdded
MessageBox.Show("Boton " & BOTON.Name & " adicionado!")
End Sub
End Class

----------------------------------

Espero les sea de ayuda,
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 19:51.