1 - Primeiro passo é criar um aplicativo Windows Forms Application(de a ele o nome que desejar).

2 - Insira 3 TextBox, Label e 3 Button no formulario, dando a eles o seguinte  nomes

 ____________________________________
|Componente| Nome      | Text      |
|------------------------------------|
|Label1    | lbCodigo  |Codigo :     |
|Label2    | lbNome    |Nome :       |
|Label3    | lbValor   |Valor :      |  
|TextBox1  | txtCodigo |      |
|TextBox2  | txtNome   |      |
|TextBox3  | txtValor  |      |  
|Button1   | btGravar  |Gravar       |
|Button1   | btInserir |Inserir      | 
|Button1   | btFechar  |Fechar       |
|Form1     | FrmCadProd|Cad. Produto | 
 ------------------------------------
Exp: Figura1

Figura1

 
3 - No código fonte, antes do public FrmCadProd, insira o seguinte código :

  public struct sPruduto {
      public int Codigo;
      public string Nome;
      public float Valor;
  }

  ArrayList ArlListaProdutos = new ArrayList();

Não se esqueça de Utilizar o pacote Collection;
"using System.Collections"


4 - No Botão fechar de um duplo click e insira o seguinte codigo:


Close();


5 - No Botao Inserir de um duplo click, antes da linha de comando : "private 
void btInserir_Click(object sender, EventArgs e)" insira o seguinte codigo :

   private void LimparRegistro()
   {
       foreach (Control c in this.Controls)
       {
           if (c is TextBox)
           {
              (c as TextBox).Clear();
           }
        }
   }


6 - Agora dentro do Click do botao insira o seguinte codigo :

   LimparRegistro();
   txtCodigo.Text = (ArlListaProdutos.Count + 1).ToString();
   txtNome.Focus();

7 - Proximo passo, agora no botao gravar implemente o seguinte codigo :
   
    if (string.IsNullOrEmpty(txCodigo.Text)) {
       MessageBox.Show("Erro ao Gravar Registro, Campo Codigo Invalido");
       return ;
     }

     sPruduto sProd = new sPruduto();
     sProd.Codigo = int.Parse(txtCodigo.Text);
     sProd.Nome = txtNome.Text;
           
     ArlListaProdutos.Add(sProd);
     MessageBox.Show("Registro gravado com sucesso!!", "Gravado", MessageBoxButtons.OK, MessageBoxIcon.Warning);


/* Feito isso o projeto já está gravando no ArrayList */

8 - Agora iremos listar os registros gravados, inserindo ele em um DataGridView, adicione um DataGridView no formulario, e mais um novo Button, renomeie eles da seguinte forma :

 ____________________________________________
|Componente    | Nome      | Text            |
|------------------------------------        |
|DataGridView  | dgvDados  |                 |
|Button        | btListar  |Listar Registros |
 --------------------------------------------

9 - Click no botao direito do mouse sobre o dgvDados, e vai em propiedades, procure por "Add Column" localisado na parte abaixo das propiedades, e adicione 2 colunas, Codigo, e nome, segue o exemplo na figura2:


10 - feito isso, de um duplo click no botao Listar Registros, nele inseira o seguinte trecho de codigo :

   dgvDados.Rows.Clear();
   for (int i = 0; i < ArlListaProdutos.Count; i++)
   {
       dgvDados.Rows.Add(((sPruduto)ArlListaProdutos[i]).Codigo.ToString(), ((sPruduto)ArlListaProdutos[i]).Nome);
   }

11 - Agora o projeto está concluido, espero que o meu projeto sirva de ajuda para tirar algumas duvidas basicas,

Agradeço a atençao. Att.