none
Que tiempos aquellos, cuando tocaba hacer TODO, una remembranza

    Debate general

  • Tal y como lo dice el titulo, hoy me tomé un ratico para recordar algo que de seguro muchos de nosotros tuvimos que hacer en su momento, sin más pongo el código para aquellos que quieran recordar viejos tiempos...

    ojo : Está hecho con framework 4.0, no estoy seguro si el framework 3.5 tiene los métodos de consola necesarios.

    using System;
    
    namespace ViejosTiempos
    {
      class Program
      {
        static string[] opciones = {" 1.- Opcion 1   ",
                      " 2.- Opcion 2   ",
                      " 3.- Opcion 3   ",
                      " 4.- Opcion 4   ",
                      " 5.- Opcion 5   ",
                      " 6.- Salida    "};
    
        static int posx = Convert.ToInt32((Console.WindowWidth - opciones[0].Length )/2);
        private static int posy = 10;
        static int opcion = 0;
        private static ConsoleColor bgNormal = ConsoleColor.Black;
        private static ConsoleColor bgResaltado = ConsoleColor.Blue;
        private static ConsoleColor fgNormal = ConsoleColor.White;
        private static ConsoleColor fgResaltado = ConsoleColor.Yellow;
    
    
        static void Main(string[] args)
        {
          ConsoleKeyInfo k;
          k = new ConsoleKeyInfo();
          Console.CursorVisible = false;
          while (k.Key.ToString() != "Escape")
          {
            Console.Clear();
            SetOpcion(k.Key.ToString());
            for (int y = 0; y < opciones.Length; y++)
            {
              Console.BackgroundColor = (y == opcion) ? bgResaltado : bgNormal;
              Console.ForegroundColor = (y == opcion) ? fgResaltado : fgNormal;
              Writexy(posx, posy+y, opciones[y]);
            }
            
            if (k.Key.ToString()=="Enter")
            {
              // Se eligió una opcion del sistema
              if (opcion == opciones.Length - 1)
                break;
              else
                EjecutaOpcion();
            }
            Console.ResetColor();
            k = Console.ReadKey();
          }
        }
        
        public static void SetOpcion(string key)
        {
          if (key == "DownArrow")
            opcion = (opcion < opciones.Length - 1) ? opcion + 1 : 0;
    
          if (key == "UpArrow")
            opcion = (opcion != 0) ? opcion - 1 : opciones.Length - 1;
        }
    
        public static void EjecutaOpcion()
        {
          Writexy(1,24, opciones[opcion] + " Seleccionada");
        }
    
        public static void Writexy(int x, int y, string text)
        {
          Console.SetCursorPosition(x, y);
          Console.Write(text);
        }
      }
    }
    
    
    Saludos amigos,
    Mauricio Atanache G. - MCP
    Bogotá - Colombia
    "Bienaventurados los Pesimistas. Por que hacen BACKUPS."
    martes, 07 de diciembre de 2010 4:00

Todas las respuestas