![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
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?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|