private void opçãoPrefetch_Click(object sender, EventArgs e) { CacheMiniaturas cache = Entidades.Álbum.CacheMiniaturas.Instância; Aguarde janela = new Aguarde("Aguarde enquanto o arquivo de miniaturas é construído. Este processo pode demorar.", 1, "Processamento de miniaturas", cache.arquivoXml); janela.Abrir(); cache.CarregarCacheMiniaturas(); janela.Close(); }
public void Transpor(double cotaçãoVarejo, StringBuilder saída) { int maxComandosPorVez = 200; IDbConnection cn = Acesso.MySQL.ConectorMysql.Instância.CriarConexão( Acesso.MySQL.MySQLUsuários.ObterÚltimaStrConexão()); cn.Open(); IDbTransaction t = cn.BeginTransaction(); StringBuilder consulta = new StringBuilder(""); this.cotaçãoVarejo = cotaçãoVarejo; CriarHash(); int vezAtual = 0; Aguarde aguarde = new Aguarde( "Alterando indices do novo banco", cadmer.Rows.Count, "Transpondo banco de dados", "Aguarde enquanto o banco de dados é sincronizado."); aguarde.Abrir(); foreach(DataRow itemMercadoria in cadmer.Rows) { aguarde.Passo(); TransporMercadoria(itemMercadoria, consulta, saída); vezAtual++; if (vezAtual >= maxComandosPorVez && consulta.Length > 0) { vezAtual = 0; IDbCommand cmd = cn.CreateCommand(); cmd.Transaction = t; cmd.CommandText = consulta.ToString(); consulta.Clear(); cmd.ExecuteNonQuery(); } } if (vezAtual > 0 && consulta.Length > 0) { IDbCommand cmd = cn.CreateCommand(); cmd.CommandText = consulta.ToString(); cmd.Transaction = t; cmd.ExecuteNonQuery(); t.Commit(); } aguarde.Close(); }
public PesquisaMercadoria() { InitializeComponent(); using (Aguarde aguarde = new Aguarde("Recuperando componentes da mercadoria...", 2)) { aguarde.Abrir(); chkTipo.Items.AddRange(MercadoriaTipo.ObterTipos()); aguarde.Passo(); chkMetal.Items.AddRange(Metal.ObterMetais()); aguarde.Passo(); chkPedras.Items.AddRange(Pedra.ObterPedras()); } }
private Entidades.Mercadoria.Mercadoria[] CarregarMercadorias() { Entidades.Mercadoria.Mercadoria[] mercadorias; UseWaitCursor = true; using (Aguarde aguarde = new Aguarde("Pesquisando...", 4)) { aguarde.Abrir(); using (ControlePesquisaMercadoria controle = new ControlePesquisaMercadoria(cmbTabela.Seleção)) { Filtrar(aguarde, controle); aguarde.Passo(); mercadorias = controle.ObterMercadorias(); } } UseWaitCursor = false; return mercadorias; }
private void opçãoExtrairFotos_Click(object sender, EventArgs e) { if (lst.Seleção == null) { MessageBox.Show(this, "Favor selecionar um álbum.", "Escolha do álbum", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } folderBrowserDialog.Description = "Escolha o diretório destino"; if (folderBrowserDialog.ShowDialog(this) == DialogResult.OK) { Entidades.Álbum.Álbum album = lst.Seleção; List<Foto> fotos = album.Fotos.ExtrairElementos(); Aguarde aguarde = new Aguarde("Extraíndo fotos", fotos.Count); aguarde.Abrir(); string path = folderBrowserDialog.SelectedPath; if (!path.EndsWith(@"\")) path = path + @"\"; foreach (Foto f in fotos) { Image imagem = f.Imagem; Entidades.Mercadoria.Mercadoria m = f.ObterMercadoria(); if (imagem != null) imagem.Save(path + f.ReferênciaFormatada + " - " + m.Descrição + (m.DePeso ? "" : " - " + m.PesoFormatado) + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); aguarde.Passo(); } aguarde.Close(); MessageBox.Show("As fotos foram extraídas", "Fim", MessageBoxButtons.OK, MessageBoxIcon.Information); System.Diagnostics.Process.Start(path); } }
public static void ExportarAtacadoBR500() { string datayyyymmdd = DateTime.Now.Date.ToString("yyyyMMdd"); // Solicita nome do arquivo using (SaveFileDialog dlgGrava = new SaveFileDialog()) { dlgGrava.Title = "Escolha onde gravar o arquivo principal (CAD1A025.TXT)"; dlgGrava.FileName = @"CAD1A025.TXT"; dlgGrava.OverwritePrompt = false; dlgGrava.DefaultExt = "TXT"; if (dlgGrava.ShowDialog() == DialogResult.OK) { nomeArquivoPrincipal = dlgGrava.FileName; } else return; dlgGrava.Dispose(); } // Solicita nome do arquivo using (System.Windows.Forms.SaveFileDialog dlgGrava = new SaveFileDialog()) { //dlgGrava.InitialDirectory = nomeArquivoPrincipal; dlgGrava.Title = "Escolha onde gravar o arquivo secundário, de código de barras EAN(CAD1A090.TXT)"; dlgGrava.FileName = @"CAD1A090.TXT"; dlgGrava.OverwritePrompt = false; dlgGrava.DefaultExt = "TXT"; if (dlgGrava.ShowDialog() == DialogResult.OK) { nomeArquivoEAN = dlgGrava.FileName; } else return; dlgGrava.Dispose(); } // Obtem a cotação de varejo cotação = Cotação.ObterCotaçãoVigente(Moeda.ObterMoeda(4)).Valor; List<IDbConnection> conexõesRemovidas = new List<IDbConnection>(); // Abre banco de dados MySQL.AdicionarTabelaAoDataSet(ds, "mercadoria", conexõesRemovidas); MySQL.AdicionarTabelaAoDataSet(ds, "tabelamercadoria", conexõesRemovidas); Aguarde janela = new Aguarde("Gerando entrada para impressora fiscal", ds.Tables["mercadoria"].Rows.Count); janela.Abrir(); using (StreamWriter arquivoPrincipal = new StreamWriter(nomeArquivoPrincipal)) { using (StreamWriter arquivoEAN = new StreamWriter(nomeArquivoEAN)) { foreach (DataRow m in ds.Tables["mercadoria"].Rows) { janela.Passo(); string referencia = (string)m["referencia"]; bool foraDeLinha = ((byte)m["foradelinha"]) != 0; if (referencia.Length >= 10 && !foraDeLinha) { arquivoPrincipal.Write("0"); string referenciaCortada = Cortar(referencia.Remove(1, 1), 10, '0', false); // Arquivo EAN // Operação: Inclusão arquivoEAN.Write("0"); // Referencia da empresa, total 13 posicoes arquivoEAN.Write(Cortar(referencia, 13, '0', false)); // Digito arquivoEAN.Write(Cortar(m["digito"].ToString(), 1)); // Código reduzido arquivoEAN.Write(referenciaCortada); // Quantidade de unidades p/ EAN - total 7 string qtdEan = new String('0', 6) + "1"; arquivoEAN.Write(qtdEan); // Uso específico arquivoEAN.Write(new String('0', 10)); // Uso Específico arquivoEAN.Write(new String(' ', 2)); // Divide preço pela EAN-QTD arquivoEAN.Write("0"); // Para uso futuro //arquivoEAN.Write(new String(' ', 23)); arquivoEAN.WriteLine(); // Arquivo Principal arquivoPrincipal.Write(referenciaCortada); // Seção grupo subgrupo arquivoPrincipal.Write("000100010001"); //Descrição - 40 string descrição = (string)m["nome"]; // Retirar os acentos descrição = Acentuação.Singleton.TirarAcentos(descrição); arquivoPrincipal.Write(Cortar(descrição, 40)); // Descrição - 20 arquivoPrincipal.Write(Cortar(descrição, 20)); // Tipo de embalagem fornecedor arquivoPrincipal.Write("UN"); // Qtd embalagem fornecedor arquivoPrincipal.Write("0001"); // Tipo de embalagem de venda arquivoPrincipal.Write("UN"); // Qtd embalagem venda arquivoPrincipal.Write("0001"); // Peso variável bool dePeso = (byte)m["depeso"] != 0; arquivoPrincipal.Write(dePeso ? "S" : "N"); // Não emite etiqueta arquivoPrincipal.Write("0"); // Tecla da balança arquivoPrincipal.Write("000"); // Validade do produto para balança arquivoPrincipal.Write("000"); // Receita do produto para balança arquivoPrincipal.Write(new String(' ', 100)); // % de IPI arquivoPrincipal.Write(new String('0', 5)); // % bonificação arquivoPrincipal.Write(new String('0', 5)); // Valor de despache acessória arquivoPrincipal.Write(new String('0', 10)); // Valor de despache acessória tributária arquivoPrincipal.Write(new String('0', 10)); // % de frete cobrado arquivoPrincipal.Write(new String('0', 5)); // Valor do ICM na fonte arquivoPrincipal.Write(new String('0', 11)); // Valor do ICM na compra arquivoPrincipal.Write(new String('0', 4)); // Data do cálculo da saída média ddmmaaaa arquivoPrincipal.Write(datayyyymmdd); // Uso exclusivo do sistema arquivoPrincipal.Write(new String('0', 5)); // Valor da saída média arquivoPrincipal.Write(new String('0', 11)); // Preço de custo do fornecedor arquivoPrincipal.Write(new String('0', 11)); // Preço de custo do fornecedor anterior arquivoPrincipal.Write(new String('0', 11)); // Data preço custo fornecedor arquivoPrincipal.Write(datayyyymmdd); // Data preço custo fornecedor anterior arquivoPrincipal.Write(datayyyymmdd); // Preço de venda unitário 8,2-> "0000000000" double preçoVenda = ObterPreço(referencia); if (preçoVenda <= 0) { //ReportarErro("Preço zero para referência " + referencia); } string preçoVenda10Digitos = preçoVenda.ToString("00000000.00").Replace(".", "").Replace(",", ""); if (preçoVenda10Digitos.Length != 10) MessageBox.Show("Erro, deveria ter 10 digitos"); arquivoPrincipal.Write(preçoVenda10Digitos); // Preço de venda 2 arquivoPrincipal.Write(preçoVenda10Digitos); // Preço de venda anterior arquivoPrincipal.Write(preçoVenda10Digitos); string preçoVenda11Digitos = preçoVenda.ToString("00000000.000").Replace(".", "").Replace(",", ""); if (preçoVenda11Digitos.Length != 11) MessageBox.Show("Erro: deveria ter 11 dígitos"); // Preço de venda (Unitário) arquivoPrincipal.Write(preçoVenda11Digitos); // Preço de venda 2 arquivoPrincipal.Write(preçoVenda11Digitos); // Preço de venda anterior arquivoPrincipal.Write(preçoVenda11Digitos); // Data preço de venda arquivoPrincipal.Write(datayyyymmdd); // Data preço de venda anterior arquivoPrincipal.Write(datayyyymmdd); // % margem de lucro arquivoPrincipal.Write("00"); // % margem de lucro anterior arquivoPrincipal.Write("00"); // Custo de reposição arquivoPrincipal.Write(new String('0', 11)); // Custo de reposição anterior arquivoPrincipal.Write(new String('0', 11)); // Preço com margem zero arquivoPrincipal.Write(new String('0', 11)); // Preço margem zero anterior arquivoPrincipal.Write(new String('0', 11)); // Preço oferta/promoção arquivoPrincipal.Write(new String('0', 10)); // Promoção anterior arquivoPrincipal.Write(new String('0', 10)); // Preço oferta/promoção arquivoPrincipal.Write(new String('0', 11)); // Preço oferta/promoção anterior arquivoPrincipal.Write(new String('0', 11)); // Data do início da oferta arquivoPrincipal.Write(datayyyymmdd); // Data do fim da oferta arquivoPrincipal.Write(datayyyymmdd); // Data do início da oferta anterior arquivoPrincipal.Write(datayyyymmdd); // Data do fim da oferta anterior arquivoPrincipal.Write(datayyyymmdd); // Código da natureza fiscal arquivoPrincipal.Write("T18"); // Estado de origem arquivoPrincipal.Write("MG"); // Código Associado arquivoPrincipal.Write(new String('0', 10)); // Comissão praticada arquivoPrincipal.Write(new String('0', 5)); // Estoque do produto no depósito arquivoPrincipal.Write(new String('0', 10)); // Estoque do produto na loja arquivoPrincipal.Write(new String('0', 10)); // Estoque mínimo arquivoPrincipal.Write(new String('0', 10)); // Barra a multiplicação do produto no PDV arquivoPrincipal.Write("0"); // Tipo de desconto arquivoPrincipal.Write("0"); // % desconto máximo arquivoPrincipal.Write(new String('0', 5)); // Venda fracionada arquivoPrincipal.Write(dePeso ? "1" : "0"); // Não tem dependencia arquivoPrincipal.Write("0"); // Título de dependencia arquivoPrincipal.Write(new String(' ', 10)); // 2o Título de dependencia arquivoPrincipal.Write(new String(' ', 10)); // 3o Título de dependencia arquivoPrincipal.Write(new String(' ', 10)); // Pode ser alterado arquivoPrincipal.Write("1"); // Produto Cesta básica arquivoPrincipal.Write("0"); // Se produto pertence a uma cesta arquivoPrincipal.Write("0"); // Se produto é diferenciado de outros arquivoPrincipal.Write("00"); // Normal // Data da última venda do produto arquivoPrincipal.Write(datayyyymmdd); // Uso exclusivo do sistema arquivoPrincipal.Write("0"); // Uso exclusivo do sistema arquivoPrincipal.Write("00"); // Uso exclusivo do sistema arquivoPrincipal.Write("0"); // Uso exclusivo do sistema arquivoPrincipal.Write(new String(' ', 8)); // Uso exclusivo do sistema arquivoPrincipal.Write(new String('0', 10)); // Modalidade hiperideal arquivoPrincipal.Write("04"); // Pontuação fidelidade arquivoPrincipal.Write(new String('0', 7)); // Pontos extra fidelidade arquivoPrincipal.Write(new String('0', 7)); // Peso a ser calculo em item unitário arquivoPrincipal.Write(new String('0', 5)); // Flag de produto unitário vendido por peso //sw.Write(dePeso ? "1" : "0"); arquivoPrincipal.Write("0"); // Quantidade máxima a ser multiplaco no pdv arquivoPrincipal.Write("000"); // Uso exclusivo do sistema arquivoPrincipal.Write(new String(' ', 3)); // Qtd maxima a ser vendido arquivoPrincipal.Write(new String('0', 5)); // Solicita senha do supervisor para venda arquivoPrincipal.Write("0"); // Para uso futuro //arquivoPrincipal.Write(new String(' ', 44)); arquivoPrincipal.WriteLine(); } } } janela.Close(); MessageBox.Show("Processo concluído.", "Exportação de arquivo fiscal", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
/// <summary> /// Imprime etiquetas /// </summary> /// <param name="etiquetas">Etiquetas a serem impressas</param> /// <param name="layout">Layout de etiquetas</param> private void ImprimirEtiquetas(EtiquetaFormato [] etiquetas, LabelLayout layout) { ArrayList saquinhosImpressos = new ArrayList(); int deEtiqueta, atéEtiqueta; // Seleção de etiquetas a serem impressas int nEtiquetas; // Total de etiquetas a serem impressas int etiquetasPágina; // Etiquetas por página int iEtiqueta; // Iterador nEtiquetas = CalcularNúmeroEtiquetas(etiquetas); etiquetasPágina = layout.LabelsPerPage; printDlg.PrinterSettings.MaximumPage = (int) Math.Ceiling(nEtiquetas / (float) etiquetasPágina); printDlg.PrinterSettings.MinimumPage = 1; printDlg.PrinterSettings.DefaultPageSettings.PaperSize = layout.PaperSize; printDlg.PrinterSettings.FromPage = 1; printDlg.PrinterSettings.ToPage = printDlg.PrinterSettings.MaximumPage; if (printDlg.ShowDialog(this.ParentForm) != DialogResult.OK) { MessageBox.Show(this, "Impressão cancelada pelo usuário", "Impressão", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } aguardeImpressão = new Aguarde( "Preparando impressão...", 2 + printDlg.PrinterSettings.ToPage - printDlg.PrinterSettings.FromPage, "Imprimindo etiquetas", "Aguarde enquanto o sistema imprime as etiquetas solicitadas."); // Mostrar janela de espera aguardeImpressão.Abrir(); aguardeImpressão.Tag = 0; // Usado para numeração de página try { // Preparar impressão layout.Document = printDoc; deEtiqueta = (printDlg.PrinterSettings.FromPage - 1) * etiquetasPágina; atéEtiqueta = (printDlg.PrinterSettings.ToPage) * etiquetasPágina - 1; iEtiqueta = 0; // Inserir objetos de impressão layout.Objects = new ArrayList(); // Atualizando dados aguardeImpressão.Passo("Sincronizando dados com o banco de dados"); bandeja.AtualizaObjetosInstrínsecosDosSaquinhos(); // Formata a impressão aguardeImpressão.Passo("Formatando dados para impressão de etiquetas"); foreach (SaquinhoEtiqueta saquinho in bandeja) { /* Verificar se saquinho contém formato a ser * impresso. Não é a melhor implementação, * porém o número de formatos é bem pequeno, * levando a um pior desempenho caso utilizado * busca binária, já que deve ordenar os itens. */ for (int i = 0; i < etiquetas.Length; i++) if (saquinho.Etiqueta == etiquetas[i]) { #if DEBUG if (saquinho.Mercadoria == null) throw new NullReferenceException("Mercadoria de saquinho está nula!"); #endif if (iEtiqueta >= deEtiqueta && iEtiqueta <= atéEtiqueta) { layout.Objects.Add( new RepeatedObject( layout.Items[i], saquinho.Mercadoria, ( Convert.ToInt32(saquinho.Quantidade) > atéEtiqueta - iEtiqueta + 1 ? atéEtiqueta - iEtiqueta + 1 : Convert.ToInt32(saquinho.Quantidade)))); saquinho.Impresso = true; if (saquinhosImpressos.Contains(saquinho)) throw new Exception("Lista ja contem o item de etiqueta"); saquinhosImpressos.Add(saquinho); } else if (iEtiqueta <= atéEtiqueta && iEtiqueta + saquinho.Quantidade >= deEtiqueta) { layout.Objects.Add( new RepeatedObject( layout.Items[i], saquinho.Mercadoria, Convert.ToInt32(saquinho.Quantidade) - (deEtiqueta - iEtiqueta) > atéEtiqueta - iEtiqueta + 1 ? atéEtiqueta - iEtiqueta + 1 : Convert.ToInt32(saquinho.Quantidade) - (deEtiqueta - iEtiqueta))); saquinho.Impresso = true; if (saquinhosImpressos.Contains(saquinho)) throw new Exception("Lista ja contem o item de etiqueta"); saquinhosImpressos.Add(saquinho); } iEtiqueta += Convert.ToInt32(saquinho.Quantidade); } } bool loop; do { #if !DEBUG try #endif { printDoc.Print(); loop = false; } #if !DEBUG catch (Exception e) { loop = MessageBox.Show( this.ParentForm, "Não foi possível imprimir o documento. Verifique se a impressora está ligada e conectada corretamente ao computador.", "Impressão de etiquetas - " + e.Message, MessageBoxButtons.RetryCancel) == DialogResult.Retry; if (loop) { printDlg.AllowSomePages = false; printDlg.ShowDialog(this.ParentForm); } } #endif } while (loop); } finally { layout.Dispose(); aguardeImpressão.Close(); aguardeImpressão.Dispose(); aguardeImpressão = null; } bandeja.FoiImpresso(saquinhosImpressos); opçãoImprimir.Enabled = true; }
/// <summary> /// Ocorre ao solicitar impressão /// </summary> private void opçãoImprimir_Click(object sender, System.EventArgs e) { EtiquetaFormato [] etiquetas = ObterFormatosBandeja(); using (Aguarde aguarde = new Aguarde("Reobtendo configuração dos formatos", etiquetas.Length)) { aguarde.Abrir(); foreach (EtiquetaFormato etiqueta in etiquetas) { aguarde.Passo("Reobtendo configuração do formato " + etiqueta.Formato); etiqueta.ReobterInformações(); } aguarde.Close(); } using (ImprimirEscolha dlg = new ImprimirEscolha(etiquetas, new ImprimirEscolha.CalcularEtiquetas(CalcularNúmeroEtiquetas))) { if (dlg.ShowDialog() == DialogResult.OK) { ImprimirEtiquetas(dlg.Seleção, dlg.LayoutEtiquetas); } } }
private void bandejaAgrupada_ColarSolicitado(object sender, EventArgs e) { List<ISaquinho> lista = ÁreaDeTransferência.Instância.Lista; if (lista.Count == 0) return; if (ConferirTravamento()) return; Aguarde aguarde = new Aguarde("Colando..", lista.Count); aguarde.Abrir(); foreach (ISaquinho s in lista) { s.Mercadoria.Peso = s.Peso; Adicionar(s.Mercadoria, s.Quantidade, ModoJanelaÍndice.MostrarSeNecessário, false); aguarde.Passo(s.Mercadoria.Referência); } aguarde.Close(); }
/// <summary> /// Ocorre ao mostrar a tela para imprimir /// </summary> private void painelImprimir_Exibido(object sender, System.EventArgs e) { using (Aguarde aguarde = new Aguarde( "Preparando para imprimir", seleção.Length + 1, "Preparando impressão de etiquetas", "Aguarde enquanto o sistema prepara a impressão de etiquetas.")) { int etiquetas, etiquetasPágina; aguarde.Abrir(); layout = new LabelLayout(); layout.ImportType(typeof(Entidades.Mercadoria.Mercadoria)); // Carrega formato inicial aguarde.Passo("Carregando formato " + seleção[0].Formato); layout.LoadFromXml(seleção[0].Configuração, false); // Mescla demais formatos for (int i = 1; i <seleção.Length; i++) { aguarde.Passo("Mesclando formato " + seleção[i].Formato); layout.MergeFromXml(seleção[i].Configuração, false); } // Calcula número de páginas aguarde.Passo("Calculando número de páginas"); etiquetas = cálculo(seleção); etiquetasPágina = layout.LabelsPerPage; lblTotal.Text = etiquetas.ToString(); lblPáginas.Text = Math.Ceiling(etiquetas / (float) etiquetasPágina).ToString(); lblEtiquetas.Text = etiquetasPágina.ToString(); } }
/// <summary> /// Verifica compatibilidade da seleção atual /// </summary> /// <returns>Compatibilidade dos formatos</returns> private bool VerificarCompatibilidade() { if (seleção.Length <= 1) return true; using (Aguarde aguarde = new Aguarde( "Construindo formato para base de comparação", seleção.Length, "Verificando compatibilidade", "O sistema está verificando a compatibilidade dos formatos de etiqueta a serem impressos.")) { bool compatibilidade = true; LabelLayout layout; // Construir janela de porcentagem aguarde.Abrir(); aguarde.Passo("Carregando formato " + seleção[0].Formato); layout = new LabelLayout(); layout.LoadFromXml(seleção[0].Configuração, true); for (int i = 1; i < seleção.Length && compatibilidade; i++) { LabelLayout aux; aguarde.Passo("Comparando formato " + seleção[i].Formato); aux = new LabelLayout(); aux.LoadFromXml(seleção[i].Configuração, true); compatibilidade &= layout.IsCompatible(aux); } return compatibilidade; } }
/// <summary> /// Exibe pessoas na lista. /// </summary> /// <param name="pessoas">Pessoas a serem exibidas.</param> private void Exibir(List<Entidades.Pessoa.Pessoa> pessoas) { Aguarde janela = new Apresentação.Formulários.Aguarde("Este processo não pode demorar", pessoas.Count, "Carregando cidades", "Experimente digitar o nome seguido de qualquer sobrenome, este processo será mais rápido da próxima vez."); janela.Abrir(); // Carrega o endereços das pessoas. Entidades.Pessoa.Pessoa.CarregarEndereços(pessoas); foreach (Entidades.Pessoa.Pessoa pessoa in pessoas) { janela.Passo(); ListViewItem item = new ListViewItem(new string [lista.Columns.Count]); // Atribuir nome item.Text = (pessoa != null && pessoa.Nome != null) ? pessoa.Nome : ""; List<Entidades.Pessoa.Endereço.Endereço> endereços = pessoa.Endereços.ExtrairElementos(); if (endereços.Count > 0 && endereços[0].Localidade != null && endereços[0].Localidade.Estado != null) item.SubItems[colCidade.Index].Text = endereços[0].Localidade.Nome + " - " + endereços[0].Localidade.Estado.Sigla; // Adicionar à lista lista.Items.Add(item); itensPessoa[item] = pessoa; } if (lista.Items.Count >= 1) { lista.Items[0].Selected = true; lista.Items[0].EnsureVisible(); } janela.Close(); }