none
Atualizando GridView em outro Form RRS feed

  • Pergunta

  • Olá criei um menu onde tem um grid de clientes e no construtor desse menu eu defino:

    dgrig_clientes.DataSource = LoadGrids.loadGridClientes();

    então ao iniciar o form ele lista todos os clientes, mas quando em outro form um cliente é cadastrado não consigo atualizar o grid que fica lá no form menu, então fui nas propriedades do dgrig_clientes e deixei o modifiers como public e depois de cadastrar o clientes ele executa essa linha de código no form clientes:

    Menu menu = new Menu(); // instancia do form menu
    
    menu.dgrid_clientes = LoadGrids.loadGridClientes(); // para atualizar o datagridview
    
    
    mas não funciona, o datagridview não atualiza o que eu faço?

    terça-feira, 8 de julho de 2014 15:35

Respostas

  • Sugestão: faça isso com evento.

    Dentro do form Clientes, crie o seguinte evento:

    public event Action ClienteSalvo;

    Ainda no form Clientes, quando o usuário clicar no botão 'Salvar' e o cliente for salvo com sucesso, execute o seguinte código em seguida:

    if (ClienteSalvo != null)
        ClienteSalvo.Invoke();

    No form que possuí a grid, faça da seguinte forma:

    public void AbreFormClientes()
    {
        Clientes clientes = new Clientes();
        clientes.ClienteSalvo += new Action(clientes_ClienteSalvo);
        clientes.Show();
    }
    
    void clientes_ClienteSalvo()
    {
        AtualizaGrid();
    }
    
    private void AtualizaGrid()
    {
        dgrid_clientes.DataSource = LoadGrids.loadGridClient();
    }

    Tenta dessa forma, se não conseguir, informe de novo que tentamos ajudar!


    terça-feira, 8 de julho de 2014 18:01

Todas as Respostas

  • Consegui apenas atualizar ao fechar o Form Clientes mas queria que atualizar o datagrid assim que o botão salvar fosse clicado, no botão que abre o form dos clientes tenho o seguinte código
    Clientes clientes = new Clientes();
    clientes.ShowDialog();
    
    dgrid_clientes.DataSource = LoadGrids.loadGridClient(); // comando executa ao fechar o form de cadastro assim ele atualiza o gridview 

    terça-feira, 8 de julho de 2014 15:59
  • Voce tentou atualizar o grid no evento load de outro form?
    terça-feira, 8 de julho de 2014 16:20
  • Sugestão: faça isso com evento.

    Dentro do form Clientes, crie o seguinte evento:

    public event Action ClienteSalvo;

    Ainda no form Clientes, quando o usuário clicar no botão 'Salvar' e o cliente for salvo com sucesso, execute o seguinte código em seguida:

    if (ClienteSalvo != null)
        ClienteSalvo.Invoke();

    No form que possuí a grid, faça da seguinte forma:

    public void AbreFormClientes()
    {
        Clientes clientes = new Clientes();
        clientes.ClienteSalvo += new Action(clientes_ClienteSalvo);
        clientes.Show();
    }
    
    void clientes_ClienteSalvo()
    {
        AtualizaGrid();
    }
    
    private void AtualizaGrid()
    {
        dgrid_clientes.DataSource = LoadGrids.loadGridClient();
    }

    Tenta dessa forma, se não conseguir, informe de novo que tentamos ajudar!


    terça-feira, 8 de julho de 2014 18:01