none
Adicionar linha DataGridView de outro Form RRS feed

  • Pergunta

  • Olá Pessoal. Estou desenvolvendo um aplicação em Windows Forms e estou com um problema. Na imagem abaixo da para se ter uma ideia daquilo que estou tentando fazer, trata-se apenas de 2 Forms, aonde um tem vários dados, e o outro uma lista de produtos. Pretendo fazer o seguinte: quando clicar em "Adicionar Produto" um novo Form é aberto, o "Lista Produtos", Form que tem uma Grid com os produtos cadastrados no sistema, esse dados vem de uma base de dados Firebird. Com os dados listados na Grid pretendo no evento DoubleClick() adicionar uma linha na Grid de Itens que esta no Form anterior. A Grid do Form "Formulario" receberá produtos e serviços, e essa Grid tem 5 colunas (codigo, item, quantidade, tipo e total).....resumindo, o cliente vai abrir o sistema e adicionar produtos e serviços, mas esses dados vem de outros Forms, no caso Lista Produtos e Lista Serviços. Já tentei de várias formas isso, mas pretendo fazer isso em memória, somente se o cliente quiser gravar ao final que será gravado. Segue a imagem abaixo e qualquer dúvida a ser esclarecida estou a disposição.

    sábado, 1 de fevereiro de 2014 08:47

Respostas

  • using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsAppThiagoThrassi
    {
        public partial class FrmRecebe : Form
        {
            public FrmRecebe()
            {
                InitializeComponent();
            }
    
            private void ButAddItens_Click(object sender, EventArgs e)
            {
                using (FrmEnvia frm = new FrmEnvia())
                {
                    frm.ShowDialog();
                }
            }
    
            private void FrmRecebe_Load(object sender, EventArgs e)
            {
    
            }
            /// <summary>
            /// Evento responsável em receber os dados do FrmEnvia
            /// </summary>
            /// <param name="Id">Id</param>
            /// <param name="Nome">Nome</param>
            public void AddGridRecebe(Int32 Id, String Nome)
            {
                DataGridViewRecebe.Rows.Add(Id, Nome);
                DataGridViewRecebe.Update();
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsAppThiagoThrassi
    {
        public partial class FrmEnvia : Form
        {
            public FrmEnvia()
            {
                InitializeComponent();
            }
    
            private void FrmEnvia_Load(object sender, EventArgs e)
            {
                DataGridViewEnvia.Rows.Add(3);
                DataGridViewEnvia.Rows[0].Cells[0].Value = 1;
                DataGridViewEnvia.Rows[0].Cells[1].Value = "Fulano 1";
    
                DataGridViewEnvia.Rows[1].Cells[0].Value = 2;
                DataGridViewEnvia.Rows[1].Cells[1].Value = "Fulano 2";
    
                DataGridViewEnvia.Rows[2].Cells[0].Value = 1;
                DataGridViewEnvia.Rows[2].Cells[1].Value = "Fulano 3";
            }
    
            private void DataGridViewEnvia_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
            {
                try
                {
                    if (e.RowIndex > -1 && e.ColumnIndex > -1)
                    {
                        FrmRecebe frm = Application.OpenForms["FrmRecebe"] as FrmRecebe;
                        Int32 Id = Int32.Parse(DataGridViewEnvia.Rows[e.RowIndex].Cells[0].Value.ToString());
                        String Nome = DataGridViewEnvia.Rows[e.RowIndex].Cells[1].Value.ToString();
                        //AddGridRecebe é um evento public no formulario Recebe (FrmRecebe)!!!
                        frm.AddGridRecebe(Id, Nome);
                    }
                }
                catch
                {
                    MessageBox.Show("Escolha a linha para enviar", "Error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
        }
    }
    Assim!!!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Trassi quarta-feira, 5 de fevereiro de 2014 19:23
    quarta-feira, 5 de fevereiro de 2014 19:18