Hola:
Usando el modo consola de C# 2017. Hice un mini menú de opciones gracias a los compañeros de este foro. Puedo seleccionar con los botones arriba y abajo las opciones.
Se usa formato de la pantalla 16x2.
En este caso lo que hace es seleccionar opciones en el menú, pero no hace nada más. Las opciones en el menú se llama.
Menú ▲▼
1. UNO
2. DOS
3. TRES
4. CUATRO
5. ESC - SALIR
Por ejemplo, seleccionamos el 3. TRES. Pulse Enter y justo una línea de abajo dice:
3. TRES ▲▼
Después de pulsar Enter, se sustituye el texto 3. TRES ▲▼ por otro abajo.
Alum. ●●●●●●○○
En el cual podemos hacer cosas, estando ya en la subopción indicado arriba. Si pulsamos Enter, de Alum. ●●●●●●○○ vuelve al menú principal en este caso donde estaba, llamdo 3. TRES ▲▼. Si etás todavía en Alum. ●●●●●●○○, puedes pulsar la teclas arriba y abajo para mover las opciones indicadas de esta manera mostrada abajo.
Son 8 puntos. Lo que hace es alumbrar el brillo de una luz, el brillo más débil es de esta manera. Alum. ○○○○○○○○. El brillo máximo es de otra manera, Alum. ●●●●●●●●. Con las flechas del teclado arriba y abajo, seleccionamos un punto, de 1 hasta 8. La mitad sería así: Alum. ●●●●○○○○. Pulsa enter, guarda la configuración en una variable para que la recuerde y sale al menú principal.
Espero que se entienda lo que quiero hacer.
Dejo el código base, solo selecciona opciones pero al pulsar Enter tiene que hacer al menos el 3. TRES.
Código consola C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Menu_consola_09_cs
{
class Program
{
static void Main(string[] args)
{
// Título de la ventana.
Console.Title = "Menú de opciones";
// Tamaño ventana consola.
// X anchura.
Console.WindowWidth = 16;
// Y altura.
Console.WindowHeight = 2;
// Oculto el cursor.
Console.CursorVisible = false;
// Contador de teclas y navegador.
int contador = 0;
// Capturar tecla para luego validar.
ConsoleKey tecla;
do
{
//******************************************************************
// Dibujo el menú.
// Rellenar fondo verde.
Console.BackgroundColor = ConsoleColor.Green;
// Letras negras.
Console.ForegroundColor = ConsoleColor.Black;
// Limpiar pantalla.
Console.Clear();
if (contador == 0)
{
Console.SetCursorPosition(0, 0);
Console.Write("MENú ▲▼");
}
if (contador == 1)
{
Console.SetCursorPosition(0, 0);
Console.WriteLine("1. UNO");
}
if (contador == 2)
{
Console.SetCursorPosition(0, 0);
Console.WriteLine("2. DOS");
}
if (contador == 3)
{
Console.SetCursorPosition(0, 0);
Console.WriteLine("3. TRES");
}
if (contador == 4)
{
Console.SetCursorPosition(0, 0);
Console.WriteLine("4. CUATRO");
}
if (contador == 5)
{
Console.SetCursorPosition(0, 0);
Console.WriteLine("5. ESC = SALIR");
}
// Fin de pintar el menú.
//******************************************************************
// Leer tecla ingresada por el usuario.
tecla = Console.ReadKey(true).Key;
//validar el tipo de tecla
if (tecla == ConsoleKey.DownArrow)
{
contador += 1;
}
if (tecla == ConsoleKey.UpArrow)
{
contador -= 1;
}
// Si está en la última opción, salta a la primera.
if (contador > 5)
{
contador = 0;
}
// Si está en la primera posición, salta a la última.
if (contador < 0)
{
contador = 5;
}
// Uso la tecla escape como salida.
} while (tecla != ConsoleKey.Escape);
}
}
}
Captura:
Una cosa a tener en cuenta. En vez de aparecer
MENú ▲▼
En pantalla, lo primero que debe aparecer en el programa en HOLA. Si pulsas Enter, entonces ya aparece el Menú. Si pulsa salir apareces en HOLA. Luego hacer lo demás con el 3. TRES indicado arriba.
¿Alguna ayuda?
Saludos.