FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Guardar en memoria el *
Hola:
Aquí un programa hecho en consola, solo se usa las flechas del teclado y Enter. Este programa se basa en radioButton, que en este caso funciona si selecciona una opción y pulsas Enter, se pone un asterisco. Hasta ahí bien. Al pulsar Salir, luego Entrar, no se queda guardado el * en el último radioButton seleccionado. ¿Cómo se hace? El código que tengo por ahora lo dejo aquí. Código:
using System; namespace radioButton_consola_02_cs { class Program { #region Variables. private static readonly string[] TEXTO = new string[] { "( ) Opción A ", "( ) Opción B ", "( ) Opción C ", " SALIR" }; #endregion static void Main(string[] args) { // Tamaño de la ventana. Console.SetWindowSize(20, 5); // Fondo verde. Console.BackgroundColor = ConsoleColor.Blue; // Letras negras. Console.ForegroundColor = ConsoleColor.White; // Oculto el cursor. Console.CursorVisible = false; // Almacena la tecla pulsada en la variable. ConsoleKey teclaInicial; 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. void MenuPrincipal() { bool salir = false; // En itemSelecionado: // -1 = Sin seleccionar con * ninguna opción. // 0 = Seleccionar con * la Opción A. // 1 = Seleccionar con * la Opción B. // 2 = Seleccionar con * la opción C. int itemSeleccionado = 0; int itemSeñalado = 0; // 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(); for (int k = 0; k < TEXTO.Length; k++) { Console.SetCursorPosition(0, k); Console.Write(itemSeñalado == k ? "> " : " "); Console.Write(TEXTO[k]); Console.SetCursorPosition(3, k); Console.Write(itemSeleccionado == k ? "*" : " "); } // Fin de pintar el menú principal. //****************************************************************** // Leer tecla ingresada por el usuario. tecla = Console.ReadKey(true).Key; switch (tecla) { case ConsoleKey.Enter: itemSeleccionado = itemSeñalado; salir = (itemSeleccionado == TEXTO.Length - 1); break; case ConsoleKey.DownArrow: if (++itemSeñalado >= TEXTO.Length) { itemSeñalado = 0; } break; case ConsoleKey.UpArrow: if (--itemSeñalado < 0) { itemSeñalado = TEXTO.Length - 1; } break; } // Uso la tecla escape como salida. } while (!salir); } #endregion } } }
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
#2
|
||||
|
||||
No veo ningún campo que sirva para guardar qué opción está seleccionada (si es a eso a lo que te refieres con "*").
|
#3
|
|||
|
|||
Buenas:
Ya está hecho. Dejo el código por si alguien lo necesita o como curiosidad a los visitantes. Código:
using System; using System.IO; namespace radioButton_consola_03_cs { class Program { #region Variables. private static readonly string[] TEXTO = new string[] { "( ) Opción A ", "( ) Opción B ", "( ) Opción C ", "( ) Opción D ", "( ) Opción E ", "( ) Opción F ", "( ) Opción G ", " SALIR" }; private static int itemSeñalado; private static int itemSeleccionado; #endregion static void Main(string[] args) { // Título de la ventana. Console.Title = "RadioButton"; // Tamaño de la ventana. Console.SetWindowSize(20, 5); // Fondo azul. Console.BackgroundColor = ConsoleColor.Blue; // Letras blanco. Console.ForegroundColor = ConsoleColor.White; // Oculto el cursor. Console.CursorVisible = false; // Almacena la tecla pulsada en la variable. ConsoleKey teclaInicial; 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. private static void MenuPrincipal() { bool salir = false; // En itemSelecionado: // -1 = Sin seleccionar con * ninguna opción. // 0 = Seleccionar con * la Opción A. // 1 = Seleccionar con * la Opción B. // 2 = Seleccionar con * la opción C. // 3 = Seleccionar con * la opción D. // 4 = Seleccionar con * la opción E. // 5 = Seleccionar con * la opción F. // 6 = Seleccionar con * la opción G. // Capturar tecla para luego validar. ConsoleKey tecla; // Cada vez que se vuelva al menú, está señalizado con el *. itemSeñalado = 0; int pagina; // Crear archivo y guarda el * seleccioinado en él. if (File.Exists("Archivo.txt")) { string data = File.ReadAllText("Archivo.txt"); itemSeleccionado = Convert.ToInt32(data); //itemSeñalado = itemSeleccionado; } do { //****************************************************************** // Dibujo el menú principal. // Limpiar pantalla. Console.Clear(); pagina = 0; if (itemSeñalado >= 4) { pagina = 4; } // Recorre la lista de las opciones. for (int k = 0; k < 4; k++) { Console.SetCursorPosition(0, k); Console.Write(itemSeñalado == k + pagina ? "> " : " "); Console.Write(TEXTO[k + pagina]); Console.SetCursorPosition(3, k); Console.Write(itemSeleccionado == k + pagina ? "*" : " "); } // Fin de pintar el menú principal. //****************************************************************** // Leer tecla ingresada por el usuario. tecla = Console.ReadKey(true).Key; switch (tecla) { // Al pulsar Enter, marcas un radioButton con *. case ConsoleKey.Enter: if (itemSeñalado < 7) { itemSeleccionado = itemSeñalado; } salir = (itemSeñalado == TEXTO.Length - 1); // Si sales del programa, escribes en el archivo. //if (salir == true) // Si pulsa Enter, escribes en el archivo. if (tecla == ConsoleKey.Enter) { File.WriteAllText("Archivo.txt", itemSeleccionado.ToString()); } break; // Pulsar flecha abajo del teclado. case ConsoleKey.DownArrow: if (++itemSeñalado >= TEXTO.Length) { itemSeñalado = 0; Console.Clear(); } else if (itemSeñalado == 4) { Console.Clear(); } break; // Pulsar flecha arriba del teclado. case ConsoleKey.UpArrow: if (--itemSeñalado < 0) { itemSeñalado = TEXTO.Length - 1; Console.Clear(); } else if (itemSeñalado == 3) { Console.Clear(); } break; } // Uso la tecla escape como salida. } while (!salir); } #endregion } }
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
#4
|
||||
|
||||
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Guardar y Leer fotos directamente a una base de datos sin antes guardar como archivo | rmeckbell | Desarrollo en Delphi para Android | 6 | 26-06-2017 18:24:20 |
[RESUELTO] Guardar estructura de memoria (clases) a disco | Neftali [Germán.Estévez] | OOP | 27 | 09-03-2013 20:09:12 |
DBGrid: Guardar y No guardar + Validar | juliannemiro | Varios | 2 | 06-01-2012 06:49:19 |
Guardar cambios y no guardar ayuda!! | THACKER | Varios | 1 | 21-07-2008 17:49:52 |
|