Aceder a dados de um form noutro form C#

Não estarás a complicar ? O que te impede de usar o ShowDialog() ?

Se usares o ShowDialog(), como os dados já estão na BD basta chamar a função de encher a grid, depois de saires do form de edição.

Senão navega pela hierarquia de objectos através do Parent...
 
Boas!

Nao é uma boa pratica o k vou dizer mas sem duvida sera mais simples. Podes adicionar variaveis como se fossem globais, ou seja, declaras num form e sao acediveis em qualquer form.Agora de momento ja nao sei como se declara mas se kiseres saber diz k eu faço umas pesquisas no meu codigo:)
Abraço
 
Não estarás a complicar ? O que te impede de usar o ShowDialog() ?

Se usares o ShowDialog(), como os dados já estão na BD basta chamar a função de encher a grid, depois de saires do form de edição.

Senão navega pela hierarquia de objectos através do Parent...


O projevto naõ foi feito só por mim, e já vai avançado... Não posso mudar o frm principal agora.. tinha que mudar imensa coisas... :(
 
Então o que te posso dizer é para fazer como fiz num projecto semelhante, mas com um splitcontainer.

Crias uma variavel global do tipo Form formDaGrid e afectas com o form que tem a grid

deve ficar qq coisa do género:
Código:
((MAINFORM)((ultraexplorer)form2.Parent).Parent). formDaGrid .FillGrid(...)

MAINFORM-> Form que contem a ultraexplorer + formdagrid

Ou então o form da grid está dentro da variavel "Controls"

((MAINFORM)((ultraexplorer)form2.Parent).Parent).Controls["FormDaGrid"].FillGrif(...)

Cumps

PS: Para mais ajuda só com o projecto
 
Não estarás a complicar ? O que te impede de usar o ShowDialog() ?

Se usares o ShowDialog(), como os dados já estão na BD basta chamar a função de encher a grid, depois de saires do form de edição.

Senão navega pela hierarquia de objectos através do Parent...

Quando fazes ShowDialog a aplicação "congela" o Thread que fica por de traz (Parent)..
ShowDialog é utilizado para apresente Forms de forma estática.. muito programadores fazem confusão com isto..

Só que quando utilizas Show(this) a aplicação mostra o form mas não de forma "Modal" daí que se prentendes que o Form parent fique inactivo tens de utilizar a propriedade enabled=true/false..
 
Zipas o projecto, vais a www.rapidshare.com e fazes upload. Dependendo do tamanho do zip pode demorar um bocado.

Vê se este metodo te serve, mas acho que nao.
http://rapidshare.com/files/144400709/FormsComm2.zip.html


Nao conheço esse Form que estas a usar por isso e um bocado complicado falar, mas a ideia e sempre a mesma.

Tens de ter um apontador para o Form que queres actualizar no Form2. Agora como o poes la e que nao posso dizer sem ver como isso funciona.

não sei que programa usas-te para fazer isso, mas com visual studio 2005 não funcionava por estes lados :S

ou seja, dantes estava:

Código:
            Form2 frm = new Form2();
            frm.ShowDialog();
(...)
                        
            frm.PassaFormPrincipal(this);
e agora a forma correcta é:

Código:
            Form2 frm = new Form2();
            
(...)
            frm.PassaFormPrincipal(this);
            frm.ShowDialog();
so assim ficou a fazer isso... acho que isto me vai ser muito util um dia destes :) fkb
 
Boas pessoal tenho o seguinte problema:

Tou a fazer uma especie de chat em c#. O problema e o seguinte tenho um form onde o utilizador recebe as mensagens, enviadas pelos outros utilizadores e envia mensagens. E para actualizar as mensagens recebidas tenho um thread que as vai actualizando (ou deveria). O problema e que atraves do thread eu nao a consigo actualizar o form, o thread recebe a mensagem so que nao a consegue actuallizar no form. O codigo que implementei é o seguinte

o thread é inicializado no form_Load


private void frmChat_Load(object sender, EventArgs e)
{
//Cria o trhead que vai receber e tratar toda a informação recebida

TratarInformacao trataInformacao = new TratarInformacao();
trataInformacao.setTratarInformacao(this);

Thread newThread = new Thread(new ThreadStart(trataInformacao.iniciar));
newThread.Start();

}





No codigo do thread tenho o seguinte


private frmChat formChat;
private TextBox txt;

public void setTratarInformacao(frmChat frm)
{
formChat = frm;
}


so que quando chamo a funcao para actualizar a listview, que esta no form, ela corre so que nao actualiza, mas se a chamar no proprio form funciona.
 
Back
Topo