Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   C# - Agregar un control en ejecucion (http://www.forosdelweb.com/f29/c-agregar-control-ejecucion-482077/)

Mysticaliptica 17/04/2007 02:15

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

juantux 18/04/2007 10:29

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


Mysticaliptica 20/04/2007 05:18

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. ;-)

dr4k0 22/05/2008 16:08

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).


La zona horaria es GMT -6. Ahora son las 07:53.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.