REAPROVEITAMENTO DE MÉTODOS

ZOWWT 29/09/2016 18:10:59
#467723
Olá a todos,

Estou com uma dúvida porém não sei como explicar mas vou tentar...
por exemplo, eu tenho um método que faz determinada função com TextBox

e estou fazendo assim

         public void MetFuoc(TextBox sender)
{
// executar
}


o meu problema é que é imprescindível porque em uma situação vou utilizar uma 5 TextBox e na outra por exemplo 20 TextBox
existe alguma forma de declarar só uma vez mas que ela possa ser utilizada várias vezes pois sempre serão textbox e a função sempre a mesma
pensei em fazer um POG, mas iria ficar muito feio então estou pedindo ajuda a vocês ...

Agradeço desde já...
KURTGU 29/09/2016 18:13:55
#467724
Conselho mude o titulo do seu topico o pessoal nao gosta quando ve esses titulos fica a dica... Abaixo tem uma funcao que limpa todas as textbox de uma forma da pra voce adptar para o que esta precisando...

Ao invés de limpar um por um, a partir de agora você pode usar este método:
private void limparTextBoxes(Control.ControlCollection controles)
{
//Faz um laço para todos os controles passados no parâmetro
foreach (Control ctrl in controles)
{
//Se o contorle for um TextBox...
if (ctrl is TextBox)
{
((TextBox)(ctrl)).Text = String.Empty;
}
}
}

E para chamar o método basta usar o seguinte comando no evento desejado:
limparTextBoxes(this.Controls);

Link....
tutoriaiscsharp.blogspot.com.br/2013/05/limpar-todos-os-textbox-de-uma-vez-em-c.html
DS2T 29/09/2016 18:40:39
#467725
Depende muito do contexto da coisa.
Vai ser usado em vários formulários né?

Se for isso, aparece de cara uma abordagem interessante: Usar um método extensivo, para ser reaproveitado em todo o projeto.

[Ô]Ahh, mas podem surgir situações que não vou querer que todos os Textboxs do formulário realizem a ação. Vou ter que criar um parâmetro indicando quais eu quero excluir?[Ô]

Talvez não precise, se for usar herança no textbox adicionando tal método.

Ou dependendo, apenas uma classe estática já resolva.

Varia muito de situação pra situação...
ZOWWT 29/09/2016 19:26:03
#467726
Desculpe pelo título, mas não sabia muito o que por...

Vou estudar o que me passaram... Muito obrigado
KERPLUNK 29/09/2016 19:36:25
#467727
Resposta escolhida
Você poderia criar um controle derivado de Textbox, assim, você tem todas as funcionalidades de um textbox comum, mas acrescido das suas funcionalidades. é bem simples:
- Adicione um novo usercontrol
- Um novo controle será adicionado, abra o código fonte dele
- Ele por padrão irá herdar de [Ô]System.UserControl[Ô], mude isso para que herde de Textbox, assim

public partial class TextboxExtendido : TextBox

- No método InitializeComponent, existe um comando para auto-ajustar, como abaixo, basta apagar essa linha:

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;



Agora você tem um controle exatamente como um textbox e você pode fazer com ele o que quiser. Então ao invés de usar o textbox, use ele nos seus forms. Você pode até mesmo sobre-escrever eventos e métodos dele, criar novas propriedades, enfim, ele é uma classe como qualquer outra e pode ser tratada como tal. Como sei que essas coisas falar é uma coisa e ver um exemplo é outra, aqui em anexo tem um. E sim, é possível fazer isso com QUALQUER CONTROLE, incluindo DataGridView, ComboBox, Button... vai da criatividade e necessidade. Divirta-se!
KERPLUNK 29/09/2016 19:38:30
#467729
Reabri o tópico porque sei que vai ter perguntas sobre o exemplo que postei...
ZOWWT 17/10/2016 00:45:30
#468122
Citação:

:
Reabri o tópico porque sei que vai ter perguntas sobre o exemplo que postei...



Obrigado kerp, na verdade Não consegui mexer nisso por conta do meu serviço e da uma perda de um ente querido... Mas assim quê eu mexer e tiver dúvidas vou postar aqui sim. Obrigado
WEBMASTER 18/10/2016 11:27:28
#468166
Uma boa dica tambem é estudar o uso de UserControls
Tópico encerrado , respostas não são mais permitidas