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

rjcp

Como passar valores entre window forms?

7 mensagens neste tópico

Mais uma vez cá estou eu... Desta vez para saber como passar valores entre window forms

Escolho um valor de uma comboBox no Form1 e quero que esse valor apareça numa Label do form2. Sugestões?

Obrigado

Ricardo Plácido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado Tiago, já tentei mas creio haver uma forma bem mais simples.

Acho que não é necessário tanto código.

Sei que dá para fazer através de qualquer coisa parecida com isto...

public static _matricula = null;

public string matricula{

    get{return _matricula;}

    set{ _matricula = x;}

}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O correcto é

public static _matricula = null;
public string matricula{
    get{return _matricula;}
    set{ _matricula = value;} //value e nao x
}

Não sei se sabes o que significa uma variável ser static, mas significa que essa variável é partilhada por todas as instâncias dessa classe.

Assim sendo, se as Forms forem todas da mesma classe podes usar esse código, e nem precisas do segundo bloco, basta-te ter a variável static que vai ser possível aceder a partir de qualquer Form. Basta numa form da combobox atribuir-lhe o valor e na outra ler...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, exactamente, eu qd escrevi X referia-me exactamente a um valor... :cheesygrin:

O que acontece é que os form's estão em classes diferentes e estando em classes diferentes não consigo fazer através desse código... ist deriva da minha ainda pouca experiência em C#, mas já faço muita coisa.

Desculpem lá a burrice mas isto vai lá com a prática :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

value não é um valor, é mesmo uma palavra protegida...

O bloco de código que mostraste corresponde a uma Propriedade.

Uma propriedade usa-se como se fosse uma variável qualquer e quando fizeres uma atribuição é executado o bloco de código correspondente ao set; quando fizeres uma leitura, é executado o bloco de código correspondente ao get.

Assim, por exemplo, omitindo o bloco set, podes tornar uma Propriedade read-only (googla por Properties C# para mais informação)

Quanto ao teu problema, para acederes a campos das outras forms tens que criar variáveis/propriedades públicas e as forms têem que se conhecer umas às outras. Depende de como tens o teu projecto organizado...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já consegui... O meu problema era que eu não tinha percebido que o "value" era uma palavra reservada do C#, pensando que podia ser um valor qualquer (daí o X...). Agora que percebi essa do value ser uma palavra reservada já consegui resolver o meu problema :P

Cumprimentos

Ricardo Plácido

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