private void Txt_Numero_TextChanged(object sender, EventArgs e) { if (Txt_Numero.Text == "") { //MessageBox.Show("Informme o Número Romano que deseja converter!", "Conversor", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int inicio = 0; bool resultado = false; if (Txt_Numero.Text.Length > 1) { inicio = Txt_Numero.Text.Length - 1; } else { inicio = 0; } int i = 0; for (i = 0; i <= _listaLetrasRomanas.Count - 1; i++) { if (_listaLetrasRomanas[i] == Txt_Numero.Text.Substring(inicio, 1).ToUpper()) { resultado = true; break; } else { resultado = false; } } if (resultado == false) { MessageBox.Show("A letra informada não é válida!", "Conversor", MessageBoxButtons.OK, MessageBoxIcon.Warning); Txt_Numero.Clear(); Txt_Resultado.Clear(); return; } }
private void Btn_Converter_Click(object sender, EventArgs e) { if (Txt_Numero.Text == "") { MessageBox.Show("Informme o Número Romano que deseja converter!", "Conversor", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Txt_Resultado.Clear(); bool retorno = ValidaNumeroRomano(); if (retorno == false) { Txt_Numero.Clear(); Txt_Resultado.Clear(); MessageBox.Show("O número romano informado é inválido!", "Conversor", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } int contador = 0; if ((Txt_Numero.Text.Length - 1) == 0) { for (int i = 0; i <= _listaLetrasRomanas.Count - 1; i++) { if (_listaLetrasRomanas[i] == Txt_Numero.Text.Substring(contador, 1).ToUpper()) { Txt_Resultado.Text = Convert.ToString(ValInt(Txt_Resultado.Text) + _listaNumerosInteiros[i]); break; } } } else { while (contador <= Txt_Numero.Text.Length - 1) { for (int i = 0; i <= _listaLetrasRomanas.Count - 1; i++) { if (_listaLetrasRomanas[i] == Txt_Numero.Text.Substring(contador, 1).ToUpper()) { if ((_listaLetrasRomanas[i] == "V") || (_listaLetrasRomanas[i] == "X")) { if (contador != 0) { if (Txt_Numero.Text.Substring(contador - 1, 1).ToUpper() == "I") { Txt_Resultado.Text = Convert.ToString((ValInt(Txt_Resultado.Text) - 2) + _listaNumerosInteiros[i]); break; } else { Txt_Resultado.Text = Convert.ToString(ValInt(Txt_Resultado.Text) + _listaNumerosInteiros[i]); break; } } else { Txt_Resultado.Text = Convert.ToString(ValInt(Txt_Resultado.Text) + _listaNumerosInteiros[i]); break; } } else if ((_listaLetrasRomanas[i] == "L") || (_listaLetrasRomanas[i] == "C")) { if (contador != 0) { if (Txt_Numero.Text.Substring(contador - 1, 1).ToUpper() == "X") { Txt_Resultado.Text = Convert.ToString((ValInt(Txt_Resultado.Text) - 20) + _listaNumerosInteiros[i]); break; } else { Txt_Resultado.Text = Convert.ToString(ValInt(Txt_Resultado.Text) + _listaNumerosInteiros[i]); break; } } else { Txt_Resultado.Text = Convert.ToString(ValInt(Txt_Resultado.Text) + _listaNumerosInteiros[i]); break; } } else if ((_listaLetrasRomanas[i] == "D") || (_listaLetrasRomanas[i] == "M")) { if (contador != 0) { if (Txt_Numero.Text.Substring(contador - 1, 1).ToUpper() == "C") { Txt_Resultado.Text = Convert.ToString((ValInt(Txt_Resultado.Text) - 200) + _listaNumerosInteiros[i]); break; } else { Txt_Resultado.Text = Convert.ToString(ValInt(Txt_Resultado.Text) + _listaNumerosInteiros[i]); break; } } else { Txt_Resultado.Text = Convert.ToString(ValInt(Txt_Resultado.Text) + _listaNumerosInteiros[i]); break; } } else { Txt_Resultado.Text = Convert.ToString(ValInt(Txt_Resultado.Text) + _listaNumerosInteiros[i]); break; } } } contador += 1; } } }