Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: isseu en 1 Julio 2009, 00:42 am



Título: Menu para consola en C#
Publicado por: isseu en 1 Julio 2009, 00:42 am
Echo en Mono, por lo que tambien funciona para este, util para hacer algo sencillo lo de la consola, y puede mejorarse mucho

Código
  1. using System;
  2. class Menu
  3.  
  4. {
  5.  
  6. static void Main()
  7. {
  8. int opcion=1;
  9. Console.Clear();
  10. Console.SetCursorPosition(20,1);
  11. System.Console.WriteLine("Opciones");
  12.  
  13. Console.SetCursorPosition(16, 3);
  14. System.Console.WriteLine("[ ]Opcion 1");
  15. Console.SetCursorPosition(16, 4);
  16. System.Console.WriteLine("[ ]Opcion 2");
  17. Console.SetCursorPosition(16, 5);
  18. System.Console.WriteLine("[ ]Opcion 3");
  19. armar(opcion);
  20. while(true){
  21.  
  22. if(Console.KeyAvailable){
  23. ConsoleKeyInfo keyInfo = Console.ReadKey(true);
  24. if (keyInfo.Key==ConsoleKey.DownArrow){
  25. borrar(opcion);
  26. opcion=sumarrestar(opcion,true);
  27.            armar(opcion);
  28. }
  29.  
  30. if (keyInfo.Key==ConsoleKey.UpArrow){
  31. borrar(opcion);
  32. opcion=sumarrestar(opcion,false);
  33.            armar(opcion);
  34. }
  35. if (keyInfo.Key==ConsoleKey.Enter){
  36. //Codigo a ejecutar al hacer enter en algun item del menu
  37. Console.Beep();
  38. //Fin del codigo
  39. }
  40.  
  41.  
  42. }
  43. }
  44.  
  45.  
  46. }
  47. static void armar(int opcion){
  48. if(opcion==1){
  49. Console.SetCursorPosition(17, 3);
  50. System.Console.WriteLine("+");
  51. }
  52. if(opcion==2){
  53. Console.SetCursorPosition(17, 4);
  54. System.Console.WriteLine("+");
  55. }
  56. if(opcion==3){
  57. Console.SetCursorPosition(17, 5);
  58. System.Console.WriteLine("+");
  59. }
  60. }
  61.  
  62. static void borrar(int opcion){
  63. if(opcion==1){
  64. Console.SetCursorPosition(17, 3);
  65. System.Console.WriteLine(" ");
  66. }
  67. if(opcion==2){
  68. Console.SetCursorPosition(17, 4);
  69. System.Console.WriteLine(" ");
  70. }
  71. if(opcion==3){
  72. Console.SetCursorPosition(17, 5);
  73. System.Console.WriteLine(" ");
  74. }
  75. }
  76.  
  77.  
  78.  
  79.  
  80. static int sumarrestar(int asumar,bool sumaoresta){
  81. if(sumaoresta==true){
  82.        if(asumar<3){
  83. asumar=asumar+1;
  84. }else{
  85. asumar=1;
  86. }
  87. }
  88. if(sumaoresta==false){
  89.        if(asumar>1){
  90. asumar=asumar-1;
  91. }else{
  92. asumar=3;
  93. }
  94. }
  95. return asumar;
  96. }
  97. }