C sharp - Entras en las opciones de este mini menú

 
Vista:
sin imagen de perfil
Val: 168
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Entras en las opciones de este mini menú

Publicado por Meta (122 intervenciones) el 05/02/2019 18:05:10
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#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
using System;
 
namespace Menu_consola_08_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;
 
            // Cursor invisible.
            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();
 
                //Console.SetCursorPosition(0, 1);
                //Console.Write("MENú ▲▼");
                //Console.SetCursorPosition(14, 1);
                //Console.Write("▲");
                //Console.SetCursorPosition(15, 1);
                //Console.Write("▼");
 
                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:
1399013-1998653

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder