Solo me falta poner una x en sus opciones, por ahora solo he hecho este código.
También quiero lograr que el radioButton marcado se guarde en un archivo .txt, al ejecutar el programa, lea el último valor guardado.
Código: text
También quiero lograr que el radioButton marcado se guarde en un archivo .txt, al ejecutar el programa, lea el último valor guardado.
using System;
namespace Pruebas_Opcioines_Consola_01
{
internal class Program
{
static void Main(string[] args)
{
#region Configuración ventana.
// Título de la ventana.
Console.Title = "Opciones";
// Tamaño de la ventana, x, y o, ancho y alto.
const byte ancho = 20, alto = 5;
Console.SetWindowSize(ancho, alto);
// Quitar scroll laterales. Derecho y abajo.
Console.SetBufferSize(ancho, alto);
// Color de fondo.
Console.BackgroundColor = ConsoleColor.Black;
// Color de las letras.
Console.ForegroundColor = ConsoleColor.Gray;
// Limpiar pantalla y dejarlo todo en color de fondo.
Console.Clear();
// Visible el cursor. // No! Así lo haces invisible.
Console.CursorVisible = false;
#endregion
Menu();
void Menu()
{
sbyte indiceSeleccionado = 0; // Índice seleccionado de cada opción del menú.
bool salir = false; // Para salir del menú principal al INICIO.
sbyte SELECCION_OPCIONES_TOTALES = 3; // Total de opciones para seleccionar y fija.
bool opcionA = true;
bool opcionB = false;
bool opcionC = false;
// Capturar tecla para luego validar.
ConsoleKey tecla;
do
{
//******************************************************************
// Dibujo el menú principal.
switch (indiceSeleccionado)
{
case 0:
Console.SetCursorPosition(0, 0);
Console.Write(" ** TÍTULO ** ");
Console.SetCursorPosition(0, 1);
Console.Write("> ( ) Opción A ");
Console.SetCursorPosition(0, 2);
Console.Write(" ( ) Opción B ");
Console.SetCursorPosition(0, 3);
Console.Write(" ( ) Opción C ");
if ((opcionA == true) && (opcionB == false) && (opcionC == false))
{
Console.SetCursorPosition(3, 1);
Console.Write("x");
Console.SetCursorPosition(3, 2);
Console.Write(" ");
Console.SetCursorPosition(3, 3);
Console.Write(" ");
}
else
{
Console.SetCursorPosition(3, 1);
Console.Write(" ");
}
break;
case 1:
Console.SetCursorPosition(0, 0);
Console.Write(" ** TÍTULO ** ");
Console.SetCursorPosition(0, 1);
Console.Write(" ( ) Opción A ");
Console.SetCursorPosition(0, 2);
Console.Write("> ( ) Opción B ");
Console.SetCursorPosition(0, 3);
Console.Write(" ( ) Opción C ");
if (opcionA == false && opcionB == true && opcionC == false)
{
Console.SetCursorPosition(3, 1);
Console.Write(" ");
Console.SetCursorPosition(3, 2);
Console.Write("x");
Console.SetCursorPosition(3, 3);
Console.Write(" ");
}
else
{
Console.SetCursorPosition(3, 2);
Console.Write(" ");
}
break;
case 2:
Console.SetCursorPosition(0, 0);
Console.Write(" ** TÍTULO ** ");
Console.SetCursorPosition(0, 1);
Console.Write(" ( ) Opción A ");
Console.SetCursorPosition(0, 2);
Console.Write(" ( ) Opción B ");
Console.SetCursorPosition(0, 3);
Console.Write("> ( ) Opción C ");
if (opcionA == false && opcionB == false && opcionC == true)
{
Console.SetCursorPosition(3, 1);
Console.Write(" ");
Console.SetCursorPosition(3, 2);
Console.Write(" ");
Console.SetCursorPosition(3, 3);
Console.Write("x");
}
else
{
Console.SetCursorPosition(3, 3);
Console.Write(" ");
}
break;
case 3:
Console.SetCursorPosition(0, 0);
Console.Write(" ** TÍTULO ** ");
Console.SetCursorPosition(0, 1);
Console.Write("> SALIR ");
Console.SetCursorPosition(0, 2);
Console.Write(" ");
Console.SetCursorPosition(0, 3);
Console.Write(" ");
break;
default:
Console.Write("Fuera de rango. ");
break;
}
// Fin de pintar el menú principal.
//******************************************************************
// Leer tecla ingresada por el usuario.
tecla = Console.ReadKey(true).Key;
// Validar el tipo de tecla.
if (tecla == ConsoleKey.Enter)
{
switch (indiceSeleccionado)
{
case 0:
opcionA = true;
opcionB = false;
opcionC = false;
break;
case 1:
opcionA = false;
opcionB = true;
opcionC = false;
break;
case 2:
opcionA = false;
opcionB = false;
opcionC = true;
break;
case 3:
indiceSeleccionado = 0; // Restaurar índice antes de salir.
salir = true; // Salir
break;
default:
Console.Write("Fuera de rango. ");
break;
}
}
// ¿Has pulsado tecla flecha Abajo?
if (tecla == ConsoleKey.DownArrow)
{
indiceSeleccionado++;
}
// Entonces si pulsas tecla flecha Arriba.
if (tecla == ConsoleKey.UpArrow)
{
indiceSeleccionado--;
}
// Si está en la última opción, salta a la primera.
if (indiceSeleccionado > SELECCION_OPCIONES_TOTALES)
{
indiceSeleccionado = 0;
}
// Si está en la primera posición, salta a la última.
if (indiceSeleccionado < 0)
{
indiceSeleccionado = SELECCION_OPCIONES_TOTALES;
}
// Uso la tecla escape como salida.
} while (!salir);
}
}
}
}