REAPROVEITAMENTO DE MÉTODOS
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
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á...
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á...
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
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
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...
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...
Desculpe pelo tÃtulo, mas não sabia muito o que por...
Vou estudar o que me passaram... Muito obrigado
Vou estudar o que me passaram... Muito obrigado
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
- No método InitializeComponent, existe um comando para auto-ajustar, como abaixo, basta apagar essa linha:
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!
- 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!
Reabri o tópico porque sei que vai ter perguntas sobre o exemplo que postei...
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
Uma boa dica tambem é estudar o uso de UserControls
Tópico encerrado , respostas não são mais permitidas