FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Menús y submenús en consola C#
Hola:
Quiero hacer un menús con submenús como este en la consola C# 2019. Ver zoom. El código que he hecho es en un único archivo, para mi gusto, me parece demasiados códigos. Mi idea es usar dolo Flecha arriba, abajo, izquierda, derecha y Enter del teclado. La otra idea, es crear de forma muy fácil muchos menús y submenos que conecte de manera fácil y cómoda de programar, incluso para actualizacones que se entiendan bien, como añadir más sub menús y menús. Dejo el código aquí abajo, seguro que hay mejores formas de hacerlo. ¿Cómo lo harías tu? Código C#: Código:
using System; namespace Menu_consola_16_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 = 20; // Y altura. Console.WindowHeight = 5; // Oculto el cursor. Console.CursorVisible = false; // Almacena la tecla pulsada en la variable. ConsoleKey teclaInicial; // Fondo verde. Console.BackgroundColor = ConsoleColor.Green; // Letras negras. Console.ForegroundColor = ConsoleColor.Black; do { // Limpiar pantalla. Console.Clear(); // Posición del cursor del título del MENÚ PRINCIPAL. Console.SetCursorPosition(0, 0); // Título. Console.Write(" MENÚ PRINCIPAL "); // Pocisión de la hora. Console.SetCursorPosition(4, 2); // Formato numérico dd/MM/yyyy. Console.Write(DateTime.Now.ToString("ddd dd MMM")); // Almacena en la variable una tecla pulsada. teclaInicial = Console.ReadKey(true).Key; // ¿Haz pulsado la tecla Enter? if (teclaInicial == ConsoleKey.Enter) { // Sí. Se ejecuta esta función. MenuPrincipal(); } } while (teclaInicial != ConsoleKey.Escape); } #region Menú Principal. public static void MenuPrincipal() { // Contador de teclas y navegador. int opcion = 0; bool salir = false; // Capturar tecla para luego validar. ConsoleKey tecla; do { //****************************************************************** // Dibujo el menú principal. // Rellenar fondo verde. Console.BackgroundColor = ConsoleColor.Green; // Letras negras. Console.ForegroundColor = ConsoleColor.Black; // Limpiar pantalla. Console.Clear(); switch (opcion) { case 0: Console.SetCursorPosition(0, 0); Console.Write("> Opción A. "); Console.SetCursorPosition(0, 1); Console.Write(" Opción B. "); Console.SetCursorPosition(0, 2); Console.Write(" Opción C. "); Console.SetCursorPosition(0, 3); Console.Write(" Salir. "); break; case 1: Console.SetCursorPosition(0, 0); Console.Write(" Opción A. "); Console.SetCursorPosition(0, 1); Console.Write("> Opción B. "); Console.SetCursorPosition(0, 2); Console.Write(" Opción C. "); Console.SetCursorPosition(0, 3); Console.Write(" Salir. "); break; case 2: Console.SetCursorPosition(0, 0); Console.Write(" Opción A. "); Console.SetCursorPosition(0, 1); Console.Write(" Opción B. "); Console.SetCursorPosition(0, 2); Console.Write("> Opción C. "); Console.SetCursorPosition(0, 3); Console.Write(" Salir. "); break; case 3: Console.SetCursorPosition(0, 0); Console.Write(" Opción A. "); Console.SetCursorPosition(0, 1); Console.Write(" Opción B. "); Console.SetCursorPosition(0, 2); Console.Write(" Opción C. "); Console.SetCursorPosition(0, 3); Console.Write("> Salir. "); 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 (opcion) { case 0: OpcionA(); break; case 1: OpcionB(); break; case 2: OpcionC(); break; case 3: salir = true; break; default: break; } } if (tecla == ConsoleKey.DownArrow) { opcion++; } if (tecla == ConsoleKey.UpArrow) { opcion--; } // Si está en la última opción, salta a la primera. if (opcion > 3) { opcion = 0; } // Si está en la primera posición, salta a la última. if (opcion < 0) { opcion = 3; } // Uso la tecla escape como salida. } while (salir == false); } #endregion #region Opción A (0). public static void OpcionA() { ConsoleKey teclaOpcionA; Console.Clear(); do { Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción A."); Console.SetCursorPosition(0, 2); Console.WriteLine("Pulse Enter para"); Console.SetCursorPosition(0, 3); Console.WriteLine("Salir."); // Almacena el teclado pulsado en la variable teclaSubMenuA. teclaOpcionA = Console.ReadKey(true).Key; } while (teclaOpcionA != ConsoleKey.Enter); } #endregion #region Opción B (1). public static void OpcionB() { // Contador de teclas y navegador. int opcionB = 0; bool salirB = false; // Capturar tecla para luego validar. ConsoleKey teclaOpcionB; Console.Clear(); do { switch (opcionB) { case 0: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción B. "); Console.SetCursorPosition(0, 1); Console.WriteLine("> SubOpción B-1. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" SubOpción B-2 "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Salir. "); break; case 1: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción B. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" SubOpción B-1. "); Console.SetCursorPosition(0, 2); Console.WriteLine("> SubOpción B-2 "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Salir. "); break; case 2: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción B. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" SubOpción B-1. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" SubOpción B-2 "); Console.SetCursorPosition(0, 3); Console.WriteLine("> Salir. "); break; default: Console.Write("Fuera de rango. "); break; } // Leer tecla ingresada por el usuario. teclaOpcionB = Console.ReadKey(true).Key; // Validar el tipo de tecla. if (teclaOpcionB == ConsoleKey.Enter) { switch (opcionB) { case 0: OpcionB1(); break; case 1: OpcionB2(); break; case 2: salirB = true; break; default: Console.Write("Fuera de rango. "); break; } } if (teclaOpcionB == ConsoleKey.DownArrow) { opcionB++; } if (teclaOpcionB == ConsoleKey.UpArrow) { opcionB--; } // Si está en la última opción, salta a la primera. if (opcionB > 2) { opcionB = 0; } // Si está en la primera posición, salta a la última. if (opcionB < 0) { opcionB = 2; } } while (salirB == false); } #endregion #region Opcion B-1. public static void OpcionB1() { ConsoleKey teclaOpcionB1; Console.Clear(); do { Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción B-1."); Console.SetCursorPosition(0, 2); Console.WriteLine("Pulse Enter para "); Console.SetCursorPosition(0, 3); Console.WriteLine("volver atrás. "); // Almacena el teclado pulsado en la variable teclaSubMenuA. teclaOpcionB1 = Console.ReadKey(true).Key; } while (teclaOpcionB1 != ConsoleKey.Enter); } #endregion #region Opcion B-2. public static void OpcionB2() { ConsoleKey teclaOpcionB2; Console.Clear(); do { Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción B-2."); Console.SetCursorPosition(0, 2); Console.WriteLine("Pulse Enter para "); Console.SetCursorPosition(0, 3); Console.WriteLine("volver atrás. "); // Almacena el teclado pulsado en la variable teclaSubMenuA. teclaOpcionB2 = Console.ReadKey(true).Key; } while (teclaOpcionB2 != ConsoleKey.Enter); } #endregion #region Opción C (2). public static void OpcionC() { // Contador de teclas y navegador. int opcionC = 0; bool salirC = false; // Capturar tecla para luego validar. ConsoleKey teclaOpcionC; Console.Clear(); do { switch (opcionC) { case 0: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción C. "); Console.SetCursorPosition(0, 1); Console.WriteLine("> Color 1. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" Color 2. "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Opción C-1. "); break; case 1: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción C. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" Color 1. "); Console.SetCursorPosition(0, 2); Console.WriteLine("> Color 2. "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Opción C-1. "); break; case 2: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción C. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" Color 1. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" Color 2. "); Console.SetCursorPosition(0, 3); Console.WriteLine("> Opción C-1. "); break; case 3: Console.SetCursorPosition(0, 0); Console.WriteLine("> Color 3. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" Color 4. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" Color 5. "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Salir. "); break; case 4: Console.SetCursorPosition(0, 0); Console.WriteLine(" Color 3. "); Console.SetCursorPosition(0, 1); Console.WriteLine("> Color 4. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" Color 5. "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Salir. "); break; case 5: Console.SetCursorPosition(0, 0); Console.WriteLine(" Color 3. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" Color 4. "); Console.SetCursorPosition(0, 2); Console.WriteLine("> Color 5. "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Salir. "); break; case 6: Console.SetCursorPosition(0, 0); Console.WriteLine(" Color 3. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" Color 4. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" Color 5. "); Console.SetCursorPosition(0, 3); Console.WriteLine("> Salir. "); break; default: Console.Write("Fuera de rango. "); break; } // Leer tecla ingresada por el usuario. teclaOpcionC = Console.ReadKey(true).Key; // Validar el tipo de tecla. if (teclaOpcionC == ConsoleKey.Enter) { switch (opcionC) { case 0: // Fondo azul. Console.BackgroundColor = ConsoleColor.Blue; // Letras blancas. Console.ForegroundColor = ConsoleColor.White; break; case 1: // Fondo verde. Console.BackgroundColor = ConsoleColor.Green; // Letras negras. Console.ForegroundColor = ConsoleColor.Black; break; case 2: OpcionC1(); break; case 3: // Fondo negro. Console.BackgroundColor = ConsoleColor.Black; // Letras rojo. Console.ForegroundColor = ConsoleColor.Red; break; case 4: // Fondo negro. Console.BackgroundColor = ConsoleColor.Black; // Letras rojo. Console.ForegroundColor = ConsoleColor.Yellow; break; case 5: // Fondo negro. Console.BackgroundColor = ConsoleColor.Red; // Letras rojo. Console.ForegroundColor = ConsoleColor.DarkRed; break; case 6: salirC = true; break; default: Console.Write("Fuera de rango. "); break; } } if (teclaOpcionC == ConsoleKey.DownArrow) { opcionC++; } if (teclaOpcionC == ConsoleKey.UpArrow) { opcionC--; } // Si está en la última opción, salta a la primera. if (opcionC > 6) { opcionC = 0; } // Si está en la primera posición, salta a la última. if (opcionC < 0) { opcionC = 6; } } while (salirC == false); } #endregion #region OpcionC-1. public static void OpcionC1() { // Contador de teclas y navegador. int opcionC1 = 0; bool salirC1 = false; // Capturar tecla para luego validar. ConsoleKey teclaOpcionC1; Console.Clear(); do { Console.Clear(); switch (opcionC1) { case 0: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción C-1."); Console.SetCursorPosition(0, 2); Console.WriteLine(" SI"); Console.SetCursorPosition(16, 2); Console.WriteLine("> NO"); break; case 1: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción C-1."); Console.SetCursorPosition(0, 2); Console.WriteLine("> SI"); Console.SetCursorPosition(16, 2); Console.WriteLine(" NO"); break; default: Console.Write("Fuera de rango. "); break; } // Leer tecla ingresada por el usuario. teclaOpcionC1 = Console.ReadKey(true).Key; // Validar el tipo de tecla. if (teclaOpcionC1 == ConsoleKey.Enter) { switch (opcionC1) { case 0: MenuPrincipal(); Console.Clear(); break; case 1: OpcionSI(); break; default: Console.Write("Fuera de rango. "); break; } } // Flecha derecha. if (teclaOpcionC1 == ConsoleKey.RightArrow) { opcionC1++; } // Flecha izquierda. if (teclaOpcionC1 == ConsoleKey.LeftArrow) { opcionC1--; } // Si está en la última opción, salta a la primera. if (opcionC1 > 1) { opcionC1 = 0; } // Si está en la primera posición, salta a la última. if (opcionC1 < 0) { opcionC1 = 1; } } while (salirC1 == false); } #endregion #region opcionSI del sub menú C-1. public static void OpcionSI() { ConsoleKey teclaOpcionB1; Console.Clear(); do { Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción SÍ."); Console.SetCursorPosition(0, 2); Console.WriteLine("Pulse Enter para "); Console.SetCursorPosition(0, 3); Console.WriteLine("volver atrás. "); // Almacena el teclado pulsado en la variable teclaOpciónB1. teclaOpcionB1 = Console.ReadKey(true).Key; } while (teclaOpcionB1 != ConsoleKey.Enter); } #endregion } }
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
#2
|
||||
|
||||
¿No hay componentes para menús?
|
#3
|
|||
|
|||
Hola:
¿En qué sentido te refieres componentes? Este menú y submenú es de prueba por ahora, lo que le veo mucho código para lo sencillo que es en apariencia. Lo he mejorado un poco. Código:
namespace Menu_consola_18_cs { class Program { // Variable general para guardar el > de la última opción que haz entrado // en la hora de volver atrás. Por ejemplo: private static int guardarOpcion = 0; static void Main(string[] args) { Console.Title = "Menú de opciones"; // Tamaño ventana consola. // X anchura. Console.WindowWidth = 20; // Y altura. Console.WindowHeight = 5; // Oculto el cursor. Console.CursorVisible = false; // Fondo verde. Console.BackgroundColor = ConsoleColor.Green; // Letras negras. Console.ForegroundColor = ConsoleColor.Black; MenuPrincipal(); } #region Menú principal. public static void MenuPrincipal() { // Almacena la tecla pulsada en la variable. ConsoleKey teclaInicial; // Limpiar pantalla. Console.Clear(); // Posición del cursor del título del MENÚ PRINCIPAL. Console.SetCursorPosition(0, 0); // Título. Console.Write(" MENÚ PRINCIPAL "); // Pocisión de la hora. Console.SetCursorPosition(4, 2); // Formato numérico dd/MM/yyyy. Console.Write(DateTime.Now.ToString("ddd dd MMM")); // Almacena en la variable una tecla pulsada. teclaInicial = Console.ReadKey(true).Key; // ¿Haz pulsado la tecla Enter? if (teclaInicial == ConsoleKey.Enter) { // Sí. Se ejecuta esta función. MenuOpciones(); } } #endregion #region Menú de opciones principales. public static void MenuOpciones() { // Contador de teclas y navegador. int opcion = 0; opcion = guardarOpcion; // Capturar tecla para luego validar. ConsoleKey tecla; while (true) { //****************************************************************** // Dibujo el menú principal. // Limpiar pantalla. Console.Clear(); switch (opcion) { case 0: Console.SetCursorPosition(0, 0); Console.Write("> Opción A. "); Console.SetCursorPosition(0, 1); Console.Write(" Opción B. "); Console.SetCursorPosition(0, 2); Console.Write(" Opción C. "); Console.SetCursorPosition(0, 3); Console.Write(" Salir. "); break; case 1: Console.SetCursorPosition(0, 0); Console.Write(" Opción A. "); Console.SetCursorPosition(0, 1); Console.Write("> Opción B. "); Console.SetCursorPosition(0, 2); Console.Write(" Opción C. "); Console.SetCursorPosition(0, 3); Console.Write(" Salir. "); break; case 2: Console.SetCursorPosition(0, 0); Console.Write(" Opción A. "); Console.SetCursorPosition(0, 1); Console.Write(" Opción B. "); Console.SetCursorPosition(0, 2); Console.Write("> Opción C. "); Console.SetCursorPosition(0, 3); Console.Write(" Salir. "); break; case 3: Console.SetCursorPosition(0, 0); Console.Write(" Opción A. "); Console.SetCursorPosition(0, 1); Console.Write(" Opción B. "); Console.SetCursorPosition(0, 2); Console.Write(" Opción C. "); Console.SetCursorPosition(0, 3); Console.Write("> Salir. "); 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 (opcion) { case 0: OpcionA(); break; case 1: OpcionB(); break; case 2: OpcionC(); break; case 3: guardarOpcion = 0; MenuPrincipal(); break; default: break; } } // Flecha abajo del teclado. if (tecla == ConsoleKey.DownArrow) { opcion++; } // Flecha arriba del teclado. if (tecla == ConsoleKey.UpArrow) { opcion--; } // Si está en la última opción del menú, salta a la primera. if (opcion > 3) { opcion = 0; } // Si está en la primera posición del menú, salta a la última. if (opcion < 0) { opcion = 3; } } } #endregion #region Opción A (0). public static void OpcionA() { ConsoleKey teclaOpcionA; Console.Clear(); do { Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción A."); Console.SetCursorPosition(0, 2); Console.WriteLine("Pulse Enter para"); Console.SetCursorPosition(0, 3); Console.WriteLine("Salir."); // Almacena el teclado pulsado en la variable teclaSubMenuA. teclaOpcionA = Console.ReadKey(true).Key; } while (teclaOpcionA != ConsoleKey.Enter); } #endregion #region Opción B (1). public static void OpcionB() { // Contador de teclas y navegador. int opcionB = 0; // Capturar tecla para luego validar. ConsoleKey teclaOpcionB; while (true) { switch (opcionB) { case 0: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción B. "); Console.SetCursorPosition(0, 1); Console.WriteLine("> SubOpción B-1. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" SubOpción B-2 "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Salir. "); break; case 1: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción B. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" SubOpción B-1. "); Console.SetCursorPosition(0, 2); Console.WriteLine("> SubOpción B-2 "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Salir. "); break; case 2: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción B. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" SubOpción B-1. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" SubOpción B-2 "); Console.SetCursorPosition(0, 3); Console.WriteLine("> Salir. "); break; default: Console.Write("Fuera de rango. "); break; } // Leer tecla ingresada por el usuario. teclaOpcionB = Console.ReadKey(true).Key; // Validar el tipo de tecla. if (teclaOpcionB == ConsoleKey.Enter) { switch (opcionB) { case 0: OpcionB1(); break; case 1: OpcionB2(); break; case 2: guardarOpcion = 1; MenuOpciones(); break; default: Console.Write("Fuera de rango. "); break; } } if (teclaOpcionB == ConsoleKey.DownArrow) { opcionB++; } if (teclaOpcionB == ConsoleKey.UpArrow) { opcionB--; } // Si está en la última opción, salta a la primera. if (opcionB > 2) { opcionB = 0; } // Si está en la primera posición, salta a la última. if (opcionB < 0) { opcionB = 2; } } } #endregion #region Opcion B-1. public static void OpcionB1() { ConsoleKey teclaOpcionB1; Console.Clear(); do { Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción B-1."); Console.SetCursorPosition(0, 2); Console.WriteLine("Pulse Enter para "); Console.SetCursorPosition(0, 3); Console.WriteLine("volver atrás. "); // Almacena el teclado pulsado en la variable teclaSubMenuA. teclaOpcionB1 = Console.ReadKey(true).Key; } while (teclaOpcionB1 != ConsoleKey.Enter); } #endregion #region Opcion B-2. public static void OpcionB2() { ConsoleKey teclaOpcionB2; Console.Clear(); do { Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción B-2."); Console.SetCursorPosition(0, 2); Console.WriteLine("Pulse Enter para "); Console.SetCursorPosition(0, 3); Console.WriteLine("volver atrás. "); // Almacena el teclado pulsado en la variable teclaSubMenuA. teclaOpcionB2 = Console.ReadKey(true).Key; } while (teclaOpcionB2 != ConsoleKey.Enter); } #endregion #region Opción C (2). public static void OpcionC() { // Contador de teclas y navegador. int opcionC = 0; // Capturar tecla para luego validar. ConsoleKey teclaOpcionC; Console.Clear(); while(true) { switch (opcionC) { case 0: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción C. "); Console.SetCursorPosition(0, 1); Console.WriteLine("> Color 1. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" Color 2. "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Opción C-1. "); break; case 1: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción C. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" Color 1. "); Console.SetCursorPosition(0, 2); Console.WriteLine("> Color 2. "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Opción C-1. "); break; case 2: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción C. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" Color 1. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" Color 2. "); Console.SetCursorPosition(0, 3); Console.WriteLine("> Opción C-1. "); break; case 3: Console.SetCursorPosition(0, 0); Console.WriteLine("> Color 3. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" Color 4. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" Color 5. "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Salir. "); break; case 4: Console.SetCursorPosition(0, 0); Console.WriteLine(" Color 3. "); Console.SetCursorPosition(0, 1); Console.WriteLine("> Color 4. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" Color 5. "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Salir. "); break; case 5: Console.SetCursorPosition(0, 0); Console.WriteLine(" Color 3. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" Color 4. "); Console.SetCursorPosition(0, 2); Console.WriteLine("> Color 5. "); Console.SetCursorPosition(0, 3); Console.WriteLine(" Salir. "); break; case 6: Console.SetCursorPosition(0, 0); Console.WriteLine(" Color 3. "); Console.SetCursorPosition(0, 1); Console.WriteLine(" Color 4. "); Console.SetCursorPosition(0, 2); Console.WriteLine(" Color 5. "); Console.SetCursorPosition(0, 3); Console.WriteLine("> Salir. "); break; default: Console.Write("Fuera de rango. "); break; } // Leer tecla ingresada por el usuario. teclaOpcionC = Console.ReadKey(true).Key; // Validar el tipo de tecla. if (teclaOpcionC == ConsoleKey.Enter) { switch (opcionC) { case 0: // Fondo azul. Console.BackgroundColor = ConsoleColor.Blue; // Letras blancas. Console.ForegroundColor = ConsoleColor.White; break; case 1: // Fondo verde. Console.BackgroundColor = ConsoleColor.Green; // Letras negras. Console.ForegroundColor = ConsoleColor.Black; break; case 2: OpcionC1(); break; case 3: // Fondo negro. Console.BackgroundColor = ConsoleColor.Black; // Letras rojo. Console.ForegroundColor = ConsoleColor.Red; break; case 4: // Fondo negro. Console.BackgroundColor = ConsoleColor.Black; // Letras rojo. Console.ForegroundColor = ConsoleColor.Yellow; break; case 5: // Fondo negro. Console.BackgroundColor = ConsoleColor.Red; // Letras rojo. Console.ForegroundColor = ConsoleColor.DarkRed; break; case 6: guardarOpcion = 2; MenuOpciones(); break; default: Console.Write("Fuera de rango. "); break; } } if (teclaOpcionC == ConsoleKey.DownArrow) { opcionC++; } if (teclaOpcionC == ConsoleKey.UpArrow) { opcionC--; } // Si está en la última opción, salta a la primera. if (opcionC > 6) { opcionC = 0; } // Si está en la primera posición, salta a la última. if (opcionC < 0) { opcionC = 6; } } } #endregion #region OpcionC-1. public static void OpcionC1() { // Contador de teclas y navegador. int opcionC1 = 0; // Capturar tecla para luego validar. ConsoleKey teclaOpcionC1; Console.Clear(); while(true) { Console.Clear(); switch (opcionC1) { case 0: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción C-1."); Console.SetCursorPosition(0, 2); Console.WriteLine(" SI"); Console.SetCursorPosition(16, 2); Console.WriteLine("> NO"); break; case 1: Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción C-1."); Console.SetCursorPosition(0, 2); Console.WriteLine("> SI"); Console.SetCursorPosition(16, 2); Console.WriteLine(" NO"); break; default: Console.Write("Fuera de rango. "); break; } // Leer tecla ingresada por el usuario. teclaOpcionC1 = Console.ReadKey(true).Key; // Validar el tipo de tecla. if (teclaOpcionC1 == ConsoleKey.Enter) { switch (opcionC1) { case 0: guardarOpcion = 2; MenuPrincipal(); //Console.Clear(); break; case 1: OpcionSI(); break; default: Console.Write("Fuera de rango. "); break; } } // Flecha derecha. if (teclaOpcionC1 == ConsoleKey.RightArrow) { opcionC1++; } // Flecha izquierda. if (teclaOpcionC1 == ConsoleKey.LeftArrow) { opcionC1--; } // Si está en la última opción, salta a la primera. if (opcionC1 > 1) { opcionC1 = 0; } // Si está en la primera posición, salta a la última. if (opcionC1 < 0) { opcionC1 = 1; } } } #endregion #region opcionSI del sub menú C-1. public static void OpcionSI() { ConsoleKey teclaOpcionB1; Console.Clear(); do { Console.SetCursorPosition(0, 0); Console.WriteLine("Estás en Opción SÍ."); Console.SetCursorPosition(0, 2); Console.WriteLine("Pulse Enter para "); Console.SetCursorPosition(0, 3); Console.WriteLine("volver atrás. "); // Almacena el teclado pulsado en la variable teclaOpciónB1. teclaOpcionB1 = Console.ReadKey(true).Key; } while (teclaOpcionB1 != ConsoleKey.Enter); } #endregion } }
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Propiedad Default Menus Contextuales equivalente en menus firemonkey | juniorSoft | FireMonkey | 1 | 26-05-2016 22:28:58 |
Habilitar y deshabilitar submenus o menu de un mainmenu de forma dinámica (código). | cesar_gta86 | Varios | 1 | 18-12-2007 18:34:53 |
componente para Submenus | Coco_jac | Varios | 1 | 07-12-2005 02:35:28 |
Ayuda con Submenus.... | Coco_jac | Varios | 1 | 05-12-2005 07:20:30 |
Submenus en Windows para un programa | djjosep | Varios | 2 | 03-02-2004 14:41:51 |
|