Acessar objeto instanciado em outro método C#

Olá Senhores.

Tenho uma dúvida sobre como acessar um objeto instanciado na mesma classe, mas em metodos diferente em C# e utilizando com Forms.

Um resumo da aplicação:

Há um botão de cadastro em um Form, quando o usuario clica nele objeto é instanciado e preenchido com os valores dos TextBox do Form.

Neste mesmo form há um botão excluir (button1) e nele eu preciso acessar este objeto já instanciado no botao de cadastro, mas não sei como faze-lo.

Grato.

[code] private void btcadastro_Click(object sender, EventArgs e)
{

       Equipamento equip = new Equipamento();
        
        equip.Cod = txcod.Text;
        equip.Ano = txano.Text;
        equip.Desc = txdesc.Text;
        equip.Peso = float.Parse(txpeso.Text);
        equip.Volt =  comboBox1.Text;
        equip.inserirNoEstoque(txcod.Text);
                   
        listcod.Items.Add(equip.Cod);
        listano.Items.Add(equip.Ano);
        listestoque.Items.Add(equip.QEst);
        listdesc.Items.Add(equip.Desc);
        listvolt.Items.Add(equip.Volt);
        listpeso.Items.Add(equip.Peso);
             
    }

    private void FormEquip_Load(object sender, EventArgs e)
    {
      


    }

    private void button1_Click(object sender, EventArgs e)
    {

///Preciso acessar o objeto equip daqui!

    }[/code]

Do modo que você fez não seria possível. Você instanciou este objeto dentro do método e ele somente irá ser acessível neste método.

Você pode declarar este objeto do tipo Equipamento como uma variável global, e instancia-la no método em questão.

private Equipamento equip = null; 

private void btcadastro_Click(object sender, EventArgs e)  
       {  
             
           equip = new Equipamento();  
             
           equip.Cod = txcod.Text;  
           equip.Ano = txano.Text;  
           equip.Desc = txdesc.Text;  
           equip.Peso = float.Parse(txpeso.Text);  
           equip.Volt =  comboBox1.Text;  
           equip.inserirNoEstoque(txcod.Text);  
                        
           listcod.Items.Add(equip.Cod);  
           listano.Items.Add(equip.Ano);  
           listestoque.Items.Add(equip.QEst);  
           listdesc.Items.Add(equip.Desc);  
           listvolt.Items.Add(equip.Volt);  
           listpeso.Items.Add(equip.Peso);  
                  
       }  
  
       private void FormEquip_Load(object sender, EventArgs e)  
       {  
           
  
  
       }  
  
       private void button1_Click(object sender, EventArgs e)  
       {  
             
        //Preciso acessar o objeto equip daqui! 
        // Agora você pode acessa-lo de qualquer método desta classe
  
       }

Existem outras maneiras!

Obrigado pela resposta diego123321 !

Vou alterar a aplicação e posto o resultado.

Algumas observacoes a respeito do seu codigo:

Quando vc criar um novo equipamento, vc adiciona em uma lista nao eh?
Porque quando vc clicar no botao1 (delete) vc pega o item selecionado nessa lista, ai passa o codigo do equipamento para algum metodo que faz o delete ???
Nao faz muito sentido acessar a instancia do Equipamento, porque se vc criar 10 Equipamentos seguidos e clicar para deletar vc vai deletar somente a ultima instancia que vc criou.

Outra, melhor vc rever o design desse seu programa, porque tipo:
Primeiro vc criar uma instancia do Equipamento e depois roda o metodo inserirNoEstoque passando o codigo??

equip.Cod = txcod.Text;  
equip.Ano = txano.Text;  
equip.Desc = txdesc.Text;  
equip.Peso = float.Parse(txpeso.Text);  
equip.Volt =  comboBox1.Text;  
equip.inserirNoEstoque(txcod.Text);

Nao seria melhor ter uma classe que seja responsavel pela persistencia do tipo Equipamento?

Ou se vc quiser deixar um metodo inserir nesse objeto, vc poderia definir o seu metodo um pouco diferente:

public bool InserirNoEstoque(this equipamento) {  }

Porque ai vc esta usando a instancia que vc acabou de criar, caso contrario vc nao usa aquela instancia para nada.

Esses metodos sao chamados de Extension Methods, se vc quiser saber mais:
http://msdn.microsoft.com/en-us/library/bb383977.aspx

Uma ultima coisa:

inserirNoEstoque eh um metodo da class Equipamento? Se for o caso, vc precisa usar a notacao Pascal Case que tb eh conhecida por Upper Camel Case. Na verdade vc usou Camel Case quando colocou o nome nesse metodo.
Pascal Case eh bastante similar ao Camel Case a unica diferenca eh que vc sempre inicia com letra maiuscula, entao ficaria: InserirNoEstoque

//Daniel

windsofhell,

Desculpe-me, não fui claro na descrição, essa aplicação não tem persistencia.

Os dados são capturados dos TextBox, setados nos atributos do objeto e adicionados no Listbox , quando é clicado o Botao btcadastro.

Quando é selecionado uma celula do listbox, e clicado em button1 (retirar do estoque), ele subtrai (1 unidade) do atributo estoque daquele objeto, e altera o listbox de estoque deste objeto.

Obrigado pela observação do inserirNoEstoque.

Vou alterar e posto o resultado.

Sou iniciante em C#, neste exercício não foi pedido a utilização de persistencia.

A solução encontrada , foi preencher os listBoxes e depois instanciar um novo objeto no outro Form, recuperando as informações preenchidas previamente nos Listboxes.

Sei que isto não é nem um pouco funcional, serviu apenas para exercitar o preenchimento e captura de dados dos Forms e conclusão do exercicio.

Grato.