Usuário com melhor resposta
gerenciando tabcontrol

Pergunta
-
Como eu faço pra usar o tabcontrol, windows forms C#, assim:
serão várias tabpages, cada uma fará uma operação.
criar classe pra cada tabpage(todos os controles ficam no form1...
se tabpage selected => executar o código da tabpage correspondente
porque eu estava fazendo tudo junto no form1.cs
aí o form1.cs só gerencia, mas não sei como referenciar os controles qdo crio uma classe pro tabpageX.
- Editado tracaja sexta-feira, 1 de dezembro de 2017 17:47
Respostas
-
Você pode passar uma referência do Form ou dos controles diretamente para as classes. Segue exemplo:
public class Form1 { protected TextBox algumTextBox; public void botao1_Click(...) { var tabPage1 = new TabPage1(algumTextBox); } } public class TabPage1 { private TextBox textBoxForm1; public TabPage1(TextBox parametro) { this.textBoxForm1 = parametro; // Alterando algum valor do textbox no Form1, a partir da classe TabPage1 this.textBoxForm1.Text = "Alguma coisa"; } }
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
- Marcado como Resposta tracaja sábado, 2 de dezembro de 2017 21:10
-
Saudações.
Se você criar a classe TabePageX e precisa acessar esta classe.
Sete esta classe como publicaAssim:
public class TabePageX() { // todo seu código aqui }
Primeiro imagine que na classe tem algum método chamado "AtivaTab"
Faça assim:
//instanciando a classe TabePageX nomeQualquer = new TabePageX(); // acesse o método "AtivaTab" assim nomeQualquer.AtivaTab();
Atenciosamente,
____________________________________
Agnaldo Guimarães
Se te ajudei, sinalize como "útil" e lembre-se de "marcar como resposta".
Quando você marca como resposta os outros visitantes encontram a solução facilmente.
** Para que o mau prevaleça basta que os bons não façam nada....
- Marcado como Resposta tracaja sábado, 2 de dezembro de 2017 21:10
Todas as Respostas
-
Boa tarde, tracaja.
Tudo bem?
Obrigado por usar o fórum MSDN.
Poderia por favor explicar melhor o que você precisa?
Atenciosamente,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.
-
eu estou aprendendo, então o exercício envolve boas práticas.
estava fazendo o código dos tabpages todos seguidos no form1.cs.
Quero separar os códigos de cada tabpage em classes.
Tipo crio a classe tabpage2, e aí ponho o codigo do que será calculado na tabpage2.
O problema é que daí não sei referenciar os controles, que estão no form1.
por exemplo, do jeito que estou fazendo eu tenho o botão2 no tabpage2, mas todo código está no form1.cs.
não sei fazer o código numa classe tabpage2 funcionar o botão dela, pq ele está no form1....
Consegui explicar?
quero criar classes separadas pra cada tabpage com os códigos, e os botões ficam todos no form1, assim cada tabpage terá sua classe com as funcionalidades.
Ou isso é inviável?
-
Você pode passar uma referência do Form ou dos controles diretamente para as classes. Segue exemplo:
public class Form1 { protected TextBox algumTextBox; public void botao1_Click(...) { var tabPage1 = new TabPage1(algumTextBox); } } public class TabPage1 { private TextBox textBoxForm1; public TabPage1(TextBox parametro) { this.textBoxForm1 = parametro; // Alterando algum valor do textbox no Form1, a partir da classe TabPage1 this.textBoxForm1.Text = "Alguma coisa"; } }
Juliano Nunes - http://linkedin.com/in/julianonunes
Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.
Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.
- Marcado como Resposta tracaja sábado, 2 de dezembro de 2017 21:10
-
Saudações.
Se você criar a classe TabePageX e precisa acessar esta classe.
Sete esta classe como publicaAssim:
public class TabePageX() { // todo seu código aqui }
Primeiro imagine que na classe tem algum método chamado "AtivaTab"
Faça assim:
//instanciando a classe TabePageX nomeQualquer = new TabePageX(); // acesse o método "AtivaTab" assim nomeQualquer.AtivaTab();
Atenciosamente,
____________________________________
Agnaldo Guimarães
Se te ajudei, sinalize como "útil" e lembre-se de "marcar como resposta".
Quando você marca como resposta os outros visitantes encontram a solução facilmente.
** Para que o mau prevaleça basta que os bons não façam nada....
- Marcado como Resposta tracaja sábado, 2 de dezembro de 2017 21:10
-