Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Passar um vetor para um ComboBox de outro form

Pessoal, eu tenho um vetor no Form1 e quero exibir os elementos deste vetor em outro ComboBox de outro Form, segue o que fiz até o momento:

Formulário Principal:

private Conta[] contas = new Conta[1];  // existe um método que dobra o tamanho do vetor quando ele fica cheio.

private void btnTransferir_Click(object sender, EventArgs e)
        {
            InserirValorTransferencia inserirValorTransferencia = new InserirValorTransferencia(this, contas);
            inserirValorTransferencia.ShowDialog();
        } // passei o vetor 'contas' para tentar recupera-lo

Agora segue o código do form que eu quero recuperar o vetor 'contas':

public partial class InserirValorTransferencia : Form
    {
        Form1 formPrincipal;
        Conta[] contas;

        public InserirValorTransferencia(Form1 formPrincipal, Conta[] contas)
        {
            this.formPrincipal = formPrincipal;
            this.contas = contas;
            InitializeComponent();
        }

        private void InserirValorTransferencia_Load(object sender, EventArgs e)
        {
            foreach (Conta conta in this.contas)
            {
                cmb3.Items.Add(conta);  // quero preencher este ComboBox com os itens do vetor
            }
        }
    }

Tentei diversas formas e esta última me dá um erro de "System.ArgumentNullException: 'Valor não pode ser nulo.'"

O que devo fazer?

2 respostas
solução!

Oi Gregori, tudo bom?

Acredito que esse problema está ocorrendo pois seu array contas não está cheio! Ou seja, existem posições dele que estão com null.

Uma solução é verificar se a conta não tem null, antes de adicionar no combo:

private void InserirValorTransferencia_Load(object sender, EventArgs e)
        {
            foreach (Conta conta in this.contas)
            {
                if(conta != null)
                {
                    cmb3.Items.Add(conta);  // quero preencher este ComboBox com os itens do vetor
                 }
             }        
        }

Qualquer dificuldade, compartilha com a gente!

Abraço e bons estudos =)

Exatamente! faltava essa verificação, muito obrigado!