Inquiridor
Alinhar textBox com base na posição de outro textBox

Pergunta
-
Galera bom dia!
Sou novo no forum e gostaria de saber como posso incluir um novo textBox com base na posição de outro textBox. Estou desenvolvendo um programa que já tenho um textBox fixo, porém vou ter situações que terei que incluir mais um ou dois, incluir o segundo não é problema, o problema é incluir o terceiro com base na posição do segundo. Outra coisa só posso ter em tela três textBox. Abaixo o código:
private void button3_Click(object sender, EventArgs e){
AddNovoTextBox();
}
public void AddNovoTextBox(){
TextBox txt = new TextBox();
if (contador < 3){
contador = contador + 1;
this.Controls.Add(this.txt);
this.txt.Location = new Point(6, 178);
this.txt.Size = new Size(470, 26);
this.txt.Font = new Font("Tahoma", 12F, System.Drawing.FontStyle.Regular);
this.txt.ForeColor = System.Drawing.Color.DarkGray;
this.txt.Name = "txt";
this.txt.ReadOnly = true;
this.txt.TabIndex = 1;
this.txt.Focus();
}else{
MessageBox.Show("Limite 3 CB");
}
}Vocês conseguem me ajudar?
- Editado RicardoJacob terça-feira, 24 de outubro de 2017 12:37
Todas as Respostas
-
Boa tarde, RicardoJacob. Tudo bem?
Obrigado por usar o fórum MSDN.
Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?Atenciosaemente,
Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Olá Felipe bom dia,
Seria Break Fix/Erro, porque eu consigo adicionar mas não consigo apagar, dei uma mexida no código e ficou assim:
private void button3_Click(object sender, EventArgs e) {
if (stCliques < 3){
altY += 55;
this.Controls.Add(this.AddtextBoxAdc(altY));
this.textBoxAdc.Focus();
stCliques++;
}else{
MessageBox.Show("Limite 2");
}
}
public TextBox AddtextBoxAdc(int position){
TextBox textBoxAdc = new TextBox();
this.textBoxAdc.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Regular);
this.textBoxAdc.ForeColor = System.Drawing.Color.DarkGray;
this.textBoxAdc.Size = new System.Drawing.Size(235, 26);
this.textBoxAdc.Location = new System.Drawing.Point(alnX, altY);
this.textBoxAdc.Name = "textBoxAdc" + position;
this.textBoxAdc.ReadOnly = true;
this.textBoxAdc.TabIndex = 1;
return textBoxAdc;
}
private void button4_Click(object sender, EventArgs e){
if (stCliques > 3){
Controls.RemoveAt(Controls.Count-1);
stCliques--;
altY -= 55;
}else{
MessageBox.Show("Não é possivel remover");
}
}mas quando adiciono o novo textBox e ele é criado no Form, mas não carrega nenhum dos outros parâmetros de tamanho, posicionamento e cor. -
Conseguiu Resolver Ricardo?
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
Rafael Almeida
Senior Developer C#
Development Leader at JAMSOFT Informática
Microsoft Certified Professional
Criador e Mantenedor do EntityFramework Core for Firebird
Contribuidor do EntityFramework Core
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter -
Olá Ricardo!
Encontrei algo estranho no seu código.. No método "AddtextBoxAdc", você está instanciando um novo "textBoxAdc", porém, está setando as propriedades utilizando "this.textBoxAdc".. Ou seja, você já tem um atributo com o nome de "textBoxAdc" no seu formulário? Eu diria que sim, caso contrário o seu código nem compilaria..
Enfim, eu tentaria remover esses "this." antes da configuração do TextBox novo.. Ou, melhor ainda, utilize algum outro nome para a variável que está sendo criada.. Dessa forma você não entra em conflito com o atributo do formulário..
Abraço!
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima