1
« en: Lunes 10 de Marzo de 2014, 16:18 »
Hola, soy nueva programando en C#, podrían darme una mano con menu que intento armar y ya me he liado bastante?.
La idea es, tener un menu principal (menu1) en el cual tengo una opción que me lleva a un segundo menu (menu2) y teniendo la posibilidad desde este menu de volver al menu1.
A continuación adjunto el código.
using System;
using System.Diagnostics;
namespace TestLog
{
class Program
{
static void Main()
{
Menu();
}
static void Menu()
{
char opcion;
do
{
Console.Clear();
Console.WriteLine("\t************************");
Console.WriteLine("\t* 1- OPCION1 *");
Console.WriteLine("\t* 2- OPCION2 *");
Console.WriteLine("\t* ..- OPCION.. *");
Console.WriteLine("\t* ..- OPCION.. *");
Console.WriteLine("\t* N - Configurar Parametr *");
Console.WriteLine("\t************************");
Console.WriteLine("\t* [0]- Salir *");
Console.WriteLine("\t************************");
Console.Write("Opcion: ");
do {
opcion = Console.ReadKey(true).KeyChar;
} while(opcion <'0' || opcion > 'N'); //N cualquier valor dependiendo del menu
Console.WriteLine(opcion + "\n");
switch (opcion)
{
case '1':
Process.Start("cmd.exe", "dir");
break;
case '2':
Process.Start("cmd.exe", "dir");
break;
case '3':
funcionM();
break;
}
}while (opcion!='0');
}
static void funcionM()
{
char opcion2;
do
{
Console.Clear();
Console.WriteLine("\t************************");
Console.WriteLine("\t* Configuracion Param *");
Console.WriteLine("\t************************");
Console.WriteLine("\t* [1]- Opcion1 *");
Console.WriteLine("\t* [2]- OPCION2 *");
Console.WriteLine("\t* [3]- OPCION3 *");
Console.WriteLine("\t* [..]- OPCION.. *");
Console.WriteLine("\t* [..]- OPCION.. *");
Console.WriteLine("\t* [10]- Volver al menu prin *");
Console.WriteLine("\t* [N]- OPCIONN *");
Console.WriteLine("\t************************");
Console.Write("Opcion: ");
do {
opcion2 = Console.ReadKey(true).KeyChar;
} while( (opcion2 <'0') || (opcion2 > '10')); //ESTO se que está mal, pero no sé cómo hacer
//para que me tome los valores de 2 cifras. El error que me devuelve es:
//Demasiados caracteres en literal de caracter - CS012
Console.WriteLine(opcion2 + "\n");
switch(opcion2)
{
case '1': //Aqui me da problemas con el Case, me dice que 1 ya fue usado antes ... :S
// El error que me devuelve es: Demasiados caracteres en literal de caracter - CS012
Process.Start("cmd.exe", "dir");
break;
case '2':
Process.Start("cmd.exe", "dir");
break;
case '12':
Menu();
break;
}
}while(!='10');
//}
}
/*static void Salir()
{
Console.Clear();
Console.WriteLine("Salir");
}*/
}
}
Gracias y salu2