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

C# - Agregar un control en ejecucion

Estas en el tema de C# - Agregar un control en ejecucion en el foro de .NET en Foros del Web. Saludos Estoy intentando crear una aplicacion en la que me agregen botones dentro de un tableLayoutPanel en el Load del formulario, el numero de filas ...
  #1 (permalink)  
Antiguo 17/04/2007, 02:15
Avatar de Mysticaliptica  
Fecha de Ingreso: abril-2007
Ubicación: Guipuzcoa
Mensajes: 35
Antigüedad: 17 años
Puntos: 0
C# - Agregar un control en ejecucion

Saludos

Estoy intentando crear una aplicacion en la que me agregen botones dentro de un tableLayoutPanel en el Load del formulario, el numero de filas y columnas no es fijo, pero estoy verde en esto y no se por donde empezar.
Segun mi logica deberia empezar con especificar cuantas filas y columnas kiero verdad? despues, crear los objetos Button, y luego introducirlos dentro del tableLayoutLabel tal vez?
Se me plantearon muchas dudas acerca de como hacerlo ya que tampoco se muy bien el codigo que debo escribir y estoy un poco perdido.

Gracias
  #2 (permalink)  
Antiguo 18/04/2007, 10:29
Avatar de juantux  
Fecha de Ingreso: marzo-2005
Mensajes: 59
Antigüedad: 19 años, 1 mes
Puntos: 1
Re: C# - Agregar un control en ejecucion

Espero te sirva esta solucion, tu aplicala en C#

Código:
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As Integer
        Dim j As Integer

        For i = 1 To 5
            For j = 1 To 3
                Dim xButton As New Button
                xButton.Name = "Boton" & i & j
                xButton.Visible = True
                AddHandler xButton.Click, AddressOf xButton_Click
                Controls.Add(xButton)
            Next
        Next
    End Sub

    Private Sub xButton_Click(ByVal Sender As Object, ByVal e As System.EventArgs)
        MsgBox("Click boton " & Sender.name)
    End Sub
  #3 (permalink)  
Antiguo 20/04/2007, 05:18
Avatar de Mysticaliptica  
Fecha de Ingreso: abril-2007
Ubicación: Guipuzcoa
Mensajes: 35
Antigüedad: 17 años
Puntos: 0
Re: C# - Agregar un control en ejecucion

Weno pues esto es lo q he puesto al final:

private void Principal_Load(object sender, EventArgs e)
{
int n_Botones = 50; //Esta variable cambia
TableLayoutPanelCellPosition pos; //Variable posicion de la celda
Boton[] listaBotones = new Boton[n_Botones]; //Control de usuario

for (int i = n_Botones - 1; i >= 0; i--)
{
listaBotones[i] = new Boton();
pos = new TableLayoutPanelCellPosition(i, 0);
Tabla.SetCellPosition(Tabla, pos);//Establezco posicion de la celda
Tabla.Controls.Add(listaBotones[i]);
}
}

Espero q le sirva a alguien algun dia.
  #4 (permalink)  
Antiguo 22/05/2008, 16:08
 
Fecha de Ingreso: mayo-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Respuesta: C# - Agregar un control en ejecucion

Bueno pues a mi me funciono bastante algo de lo ke aki comentaron y yo les envio mi solucion

Código:
 private void AgregaEtiqueta(string str)
        {
            try
            {
                String nomctrl = "lbl_" + il.ToString();
                Label lbl = new Label();
                lbl.Text = str;
                lbl.Location = new Point(10, pos + 20);
                lbl.Visible = true;
                lbl.Name = nomctrl;
                lbl.AutoSize = true;
                lbl.Refresh();
                grpPreview.Controls.Add(lbl);
                grpPreview.Refresh();
                grpPreview.Visible = true;
                lbl = null;
                pos = pos + 20;
                il = il + 1;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
.

Espero ke sto sea de utilidad para alguien mas en este caso yo agrego etiketas y no botones.

Las variables 'il' y 'pos' son contadores uno para la posicion del control y la otra unicamente para generar el nombre (lbl_1, lbl_2, lbl_3... lbl_n).
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 12:21.