private void buscarCaminho(object sender, EventArgs e) { string cidade1 = (cbxCidade1.SelectedItem == null ? null : cbxCidade1.SelectedItem.ToString()), cidade2 = (cbxCidade2.SelectedItem == null ? null : cbxCidade2.SelectedItem.ToString()); if (cidade1 == null || cidade2 == null) { MessageBox.Show("Selecione duas cidades"); return; } if (cidade1 == cidade2) { MessageBox.Show("Selecione cidades diferentes"); return; } ParametrosDeBusca p; if (rbDist.Checked) { p = ParametrosDeBusca.Distancia; } else if (rbTempo.Checked) { p = ParametrosDeBusca.Tempo; } else { p = ParametrosDeBusca.Preco; } lbCaminho.Items.Clear(); Stack <String> caminhoInvertido = grafo.AcharCaminho(cidade1, cidade2, p); if (caminhoInvertido == null) { MessageBox.Show("Caminho não existente"); return; } caminhoBusca = caminhoInvertido; lbCaminho.Items.AddRange(caminhoInvertido.Reverse().ToArray()); lbCaminho.SelectedIndex = 0; maximizeCity = cidades[lbCaminho.SelectedItem.ToString()]; mapa.Invalidate(); }