Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cseverino

Buscar informações de um Datagrid (C#)

Recommended Posts

Boa Tarde Pessoal,

Sou iniciante em programação e C#, e estou precisando de uma ajuda.

 

Na tela Frcadastro_salas, tenho os campos cd_codigo, nm_sala, ie situacao e um botão que chama a tela Frconsulta_sala, nesta tela tenho um datagrid e um botão OK.

Gostaria de seleciar uma linha na tela Frconsulta_sala e quando clicar em OK, o sistema leve a informação para a tela Frcadastro_salas preenchendo os campos cd_codigo, nm_sala, ie situacao.

 

Alguém poderia me auxiliar de como faço isso?

 

Abaixo o código da tela do data grid, se necessário posto o código da tela que vai receber o resultado dessa tela.

using System;
using System.Windows.Forms;
 
namespace APPSis
{
    public partial class Frconsulta_sala : Form
    {
        public Frconsulta_sala()
        {
            InitializeComponent();
        }
 
        private void Frconsulta_sala_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'bancoDataSet.Salas' table. You can move, or remove it, as needed.
            this.salasTableAdapter.Fill(this.bancoDataSet.Salas);
 
        }
 
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
 
        }
 
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola,

 

No evento do botao ok voce coloca algo assim:


// pega o codigo da linha que esta selecionada do dgv (isso caso o codigo for a primeira coluna que é representada pelo Zero)
                string cd_codigo = dataGridView1.CurrentRow.Cells[0].Value.ToString();

// pega o nm_sala da linha que esta selecionada do dgv caso o nm_sala seja a segunda coluna do datagrid
               string nm_sala = dataGridView1.CurrentRow.Cells[1].Value.ToString();

// pega situacao da linha que esta selecionada do dgv caso situacao  seja a terceira coluna do datagrid
               string situacao = dataGridView1.CurrentRow.Cells[2].Value.ToString();
              

            //    ao instanciar o o form envia os 3 parametros  cd_codigo, nm_sala e situacao
            Frcadastro_salas formSala= new Frcadastro_salas(cd_codigo, nm_sala, situacao );
           
//exibe o form
            formSala.ShowDialog();
      

    

agora na tela que recebe os dados:

//onde provavelmente esta assim:
      public Frcadastro_salas()
        {
            InitializeComponent();
        }


// voce apaga e coloca assim:

//recebe os dados enviados via parametro
 public Frcadastro_salas(string codigo, string nm_sala, string resultado)
        {
            InitializeComponent();            

//aqui depende dos teus provavelmente textbox ai  troca o nome ...
            txtCodigo.Text = codigo;
            txtNm_sala.Text = nm_sala;
            txtResultado.Text = resultado;
         
        }

Se for para editar os dados recomendo criar um form separado para isso!

Pelo que entendi é isso, qualquer coisa avisa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite MarcosMTS,

 

Implementou o que você publicou porém quando tento testar o sistema gera o seguinte erro

Error 1 'APPSis.Frcadastro_salas' does not contain a constructor that takes 0 arguments
Eu imagino que isso pode ser porque eu entro na tela Frcadastro_salas, dentro dela chamo a Frconsulta_sala, seleciono o item desejado e depois retornar para a tela Frcadastro_salas.
Você pode meu orientar como resolvo essa situação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente é no local onde instância (manda abrir a tela pra cadastrar) não esta sendo enviado os parâmetros que o construtor la pede (public Frcadastro_salas(string codigo, string nm_sala, string resultado)
), como o Khaos acima falou!

 

Entao como ja te recomendei, Crie um novo form para isso, deixe o do cadastro como tava antes e cria um novo parecido, com o nome Fredicao_salas ou algo assim, fazendo as mudanças la no construtor e manda chamar esse no quando clicar em oK

 

ou simplesmente ao Instanciar a tela de cadastro (isso quando abrir para Cadastrar) passa parametros null por exemplo:

         


   Frcadastro_salas formSala= new Frcadastro_salas(null, null, null); 
  //eu acho que da certo (não testei);

//ou assim acho que resolve

string cd_codigo = ""; // ou null no lugar de "" talvez...
string nm_sala = "";
string situacao = "";

Frcadastro_salas formSala= new Frcadastro_salas(cd_codigo, nm_sala, situacao );



Compartilhar este post


Link para o post
Compartilhar em outros sites
//recebe os dados enviados via parametro
 public Frcadastro_salas(string codigo, string nm_sala, string resultado)
        {
            InitializeComponent();            

//aqui depende dos teus provavelmente textbox ai  troca o nome ...
            txtCodigo.Text = codigo;
            txtNm_sala.Text = nm_sala;
            txtResultado.Text = resultado;
         
        }

Pessoal, esse método precisa ter um retorno, nem que seja void.

 

Camarada, você já tentou usar propriedades entre Forms? Por Exemplo:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Abre a form de cadastro
            frmCadastro cadastro = new frmCadastro();
            cadastro.ShowDialog();
            
            //Recebe a propriedade com o Nome e exibe em uma Label.
            label1.Text = cadastro.Nome;
        }
    }


//Form de Cadastro
public partial class frmCadastro : Form
    {
        //Propriedade tem o mesmo valor da Textbox que adicionei nesta form,
        // que recebe um nome do usuário.
        public string Nome { get { return textBox1.Text; } }

        public frmCadastro()
        {
            InitializeComponent();
        }

       //Quando clicar no botão, fecha a janela e volta pra form principal.
        private void button1_Click(object sender, EventArgs e)
        {
            Close();
        }
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites
//recebe os dados enviados via parametro
 public Frcadastro_salas(string codigo, string nm_sala, string resultado)
        {
            InitializeComponent();            

//aqui depende dos teus provavelmente textbox ai  troca o nome ...
            txtCodigo.Text = codigo;
            txtNm_sala.Text = nm_sala;
            txtResultado.Text = resultado;
         
        }

Pessoal, esse método precisa ter um retorno, nem que seja void.

 

Esse é o construtor não precisa de retorno amigo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, muito obrigado pela ajuda, especialmente para o MarcosMTS.

 

Minha falha estava na tela de menu.

 

private void salasToolStripMenuItem_Click(object sender, EventArgs e)
{
Frcadastro_salas Outroform = new Frcadastro_salas(null,null,null); // Inserir o null e funcionou
Outroform.ShowDialog();

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.