• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

saramgsilva

Controlo com vários Buttons - dinamico

6 mensagens neste tópico

Boas,

eu pretendo fazer um controlo, que de para criar varios botões, consoante o que eu pretendo!

se kero 1,2,3,4 ou mais... em que a funcionalidade dele é mto semelhante, e pretendo aproveitar o codigo.

já andei a fazer umas pesquisas, mas não sei bem o k fazer....Falaram me em ButtonArray, mas não vi nada de jeito...  :wallbash:

Alguem me pode dar uma sugestão?

Ainda pensei em fazer um Collection<Button> .... hummm não sei!

bom trabalho

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

estou a fazer do seguinte modo:


public partial class ButtonCollection : UserControl
    {
        private Dictionary<string, Button> _dictButton;
        private int _y;

        public ButtonCollection()
        {
            InitializeComponent();
            _dictButton = new Dictionary<string, Button>();
            Y = 0;
        }

        public ICollection DictButton
        {
            get { return _dictButton.Values; }
        }

        public int Y
        {
            get { return _y; }
            set { _y = value; }
        }

        public void AddButton(string name, string label)
        {
            Button button = new Button();

            button.Location = new System.Drawing.Point(20, 15 + Y * 2);
            Y = Y + 15;
            button.Name = name;
            button.Size = new System.Drawing.Size(150, 23);
            button.TabIndex = _dictButton.Count;
            button.Text = label;
            button.Tag = null;
            button.Visible = true;
            button.UseVisualStyleBackColor = true;
            button.Click += new System.EventHandler(this.btClick);

            _dictButton.Add(name, button);
            Controls.Add(button);
        }

         void btClick(object sender, System.EventArgs e)
         {
         
         }
    }

e numa Form, tenho la uma instancia desse objecto, e crio cada botao fazendo:

buttonCollection.AddButton(Name,Label)

hummm...agora estou a querer implementar uma acção do click para cada botão, são semelhantes, só muda o tipo de colecção e o objecto.

Aceito outras ideias, implementações.  :D

bom trabalho

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes derivar o tipo Button de forma a incluires no próprio objecto um campo para o identificares. Na criação dos botões associas a todos o mesmo método. Depois é só pegar no sender e verificar qual é o valor do campo, e conforme este decidias o que fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Queres que todos os mesmo botões activem a mesma função, ou queres que um botão tenha cada 1 a sua função?

Se for o mesmo evento para todos os botões, isso é simples.

Seria algo do tipo:

public partial class ButtonCollection : UserControl {
    public delegate void ButaoClickHandler(Button sender);

    public event ButaoClickHandler butaoClick;

    // Codigo etc
    // ...

    // Depois a tua função btClick será a seguinte
    private void btClick(object sender, EventArgs e) {
       butaoClick(sender as Button);
    }
}

// Do lado de fora só precisas de fazer
buttonColection.butaoClick += new ButaoClickHandler(minhaFuncao);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

acabei por usar o método  btClick para todos os botões, pois o funcionamento é o mesmo só muda o nome da collection que estou a usar, que depois dependendo disso vai buscar o objecto!

obrigada pela ajuda

bom trabalho

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora