![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Selección de radioButton
Buenas.
No consigo hacer dos cosas. Que se me quede marcado con una xun solo radioButton de las tres opciones independientemente de su selección. La otra parte del programa, que se quede el valor guardado en un archivo de texto .txt y al ejecutar el programa otra vez, que lo lea donde se quedó la opción marcada. Solo una opción debe estar marcada. Por ahora solo he hecho esto este código que está en pruebas pero no me funciona como debería a pesar que si lo compila. ¿Alguna idea? Código:
sing System; namespace Pruebas_Opcioines_Consola_01 { internal class Program { static void Main(string[] args) { #region Configuración ventana. // Título de la ventana. Console.Title = "Opciones"; // Tamaño de la ventana, x, y o, ancho y alto. const byte ancho = 20, alto = 5; Console.SetWindowSize(ancho, alto); // Quitar scroll laterales. Derecho y abajo. Console.SetBufferSize(ancho, alto); // Color de fondo. Console.BackgroundColor = ConsoleColor.Black; // Color de las letras. Console.ForegroundColor = ConsoleColor.Gray; // Limpiar pantalla y dejarlo todo en color de fondo. Console.Clear(); // Visible el cursor. // No! Así lo haces invisible. Console.CursorVisible = false; #endregion Menu(); void Menu() { sbyte indiceSeleccionado = 0; // Índice seleccionado de cada opción del menú. bool salir = false; // Para salir del menú principal al INICIO. sbyte SELECCION_OPCIONES_TOTALES = 3; // Total de opciones para seleccionar y fija. bool opcionA = true; bool opcionB = false; bool opcionC = false; // Capturar tecla para luego validar. ConsoleKey tecla; do { //****************************************************************** // Dibujo el menú principal. switch (indiceSeleccionado) { case 0: Console.SetCursorPosition(0, 0); Console.Write(" ** TÍTULO ** "); Console.SetCursorPosition(0, 1); Console.Write("> ( ) Opción A "); Console.SetCursorPosition(0, 2); Console.Write(" ( ) Opción B "); Console.SetCursorPosition(0, 3); Console.Write(" ( ) Opción C "); if ((opcionA == true) && (opcionB == false) && (opcionC == false)) { Console.SetCursorPosition(3, 1); Console.Write("x"); Console.SetCursorPosition(3, 2); Console.Write(" "); Console.SetCursorPosition(3, 3); Console.Write(" "); } else { Console.SetCursorPosition(3, 1); Console.Write(" "); } break; case 1: Console.SetCursorPosition(0, 0); Console.Write(" ** TÍTULO ** "); Console.SetCursorPosition(0, 1); Console.Write(" ( ) Opción A "); Console.SetCursorPosition(0, 2); Console.Write("> ( ) Opción B "); Console.SetCursorPosition(0, 3); Console.Write(" ( ) Opción C "); if (opcionA == false && opcionB == true && opcionC == false) { Console.SetCursorPosition(3, 1); Console.Write(" "); Console.SetCursorPosition(3, 2); Console.Write("x"); Console.SetCursorPosition(3, 3); Console.Write(" "); } else { Console.SetCursorPosition(3, 2); Console.Write(" "); } break; case 2: Console.SetCursorPosition(0, 0); Console.Write(" ** TÍTULO ** "); Console.SetCursorPosition(0, 1); Console.Write(" ( ) Opción A "); Console.SetCursorPosition(0, 2); Console.Write(" ( ) Opción B "); Console.SetCursorPosition(0, 3); Console.Write("> ( ) Opción C "); if (opcionA == false && opcionB == false && opcionC == true) { Console.SetCursorPosition(3, 1); Console.Write(" "); Console.SetCursorPosition(3, 2); Console.Write(" "); Console.SetCursorPosition(3, 3); Console.Write("x"); } else { Console.SetCursorPosition(3, 3); Console.Write(" "); } break; case 3: Console.SetCursorPosition(0, 0); Console.Write(" ** TÍTULO ** "); Console.SetCursorPosition(0, 1); Console.Write("> SALIR "); Console.SetCursorPosition(0, 2); Console.Write(" "); Console.SetCursorPosition(0, 3); Console.Write(" "); break; default: Console.Write("Fuera de rango. "); break; } // Fin de pintar el menú principal. //****************************************************************** // Leer tecla ingresada por el usuario. tecla = Console.ReadKey(true).Key; // Validar el tipo de tecla. if (tecla == ConsoleKey.Enter) { switch (indiceSeleccionado) { case 0: opcionA = true; opcionB = false; opcionC = false; break; case 1: opcionA = false; opcionB = true; opcionC = false; break; case 2: opcionA = false; opcionB = false; opcionC = true; break; case 3: indiceSeleccionado = 0; // Restaurar índice antes de salir. salir = true; // Salir break; default: Console.Write("Fuera de rango. "); break; } } // ¿Has pulsado tecla flecha Abajo? if (tecla == ConsoleKey.DownArrow) { indiceSeleccionado++; } // Entonces si pulsas tecla flecha Arriba. if (tecla == ConsoleKey.UpArrow) { indiceSeleccionado--; } // Si está en la última opción, salta a la primera. if (indiceSeleccionado > SELECCION_OPCIONES_TOTALES) { indiceSeleccionado = 0; } // Si está en la primera posición, salta a la última. if (indiceSeleccionado < 0) { indiceSeleccionado = SELECCION_OPCIONES_TOTALES; } // Uso la tecla escape como salida. } while (!salir); } } } }
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
#2
|
|||
|
|||
Me salió al final.
El código "is horrible 2". Al menos funciona, ![]() ![]() ![]() ![]() ![]() Lo dejo aquí por si alguien se estalla de la risa. Código:
using System; namespace Pruebas_Opciones_Consola_01 { internal class Program { static void Main(string[] args) { #region Configuración ventana. // Título de la ventana. Console.Title = "Opciones"; // Tamaño de la ventana, x, y o, ancho y alto. const byte ancho = 20, alto = 5; Console.SetWindowSize(ancho, alto); // Quitar scroll laterales. Derecho y abajo. Console.SetBufferSize(ancho, alto); // Color de fondo. Console.BackgroundColor = ConsoleColor.Black; // Color de las letras. Console.ForegroundColor = ConsoleColor.Gray; // Limpiar pantalla y dejarlo todo en color de fondo. Console.Clear(); // Visible el cursor. // No! Así lo haces invisible. Console.CursorVisible = false; #endregion Menu(); void Menu() { sbyte indiceSeleccionado = 0; // Índice seleccionado de cada opción del menú. bool salir = false; // Para salir del menú principal al INICIO. sbyte SELECCION_OPCIONES_TOTALES = 3; // Total de opciones para seleccionar y fija. bool opcionA = true; bool opcionB = false; bool opcionC = false; string opA = "x"; string opB = " "; string opC = " "; // Capturar tecla para luego validar. ConsoleKey tecla; do { //****************************************************************** // Dibujo el menú principal. switch (indiceSeleccionado) { case 0: Console.SetCursorPosition(0, 0); Console.Write(" ** TÍTULO ** "); Console.SetCursorPosition(0, 1); Console.Write("> ( ) Opción A "); Console.SetCursorPosition(0, 2); Console.Write(" ( ) Opción B "); Console.SetCursorPosition(0, 3); Console.Write(" ( ) Opción C "); if ((opcionA == true) && (opcionB == false) && (opcionC == false)) { Console.SetCursorPosition(3, 1); Console.Write(opA); Console.SetCursorPosition(3, 2); Console.Write(opB); Console.SetCursorPosition(3, 3); Console.Write(opC); } else { Console.SetCursorPosition(3, 1); Console.Write(opA); Console.SetCursorPosition(3, 2); Console.Write(opB); Console.SetCursorPosition(3, 3); Console.Write(opC); } break; case 1: Console.SetCursorPosition(0, 0); Console.Write(" ** TÍTULO ** "); Console.SetCursorPosition(0, 1); Console.Write(" ( ) Opción A "); Console.SetCursorPosition(0, 2); Console.Write("> ( ) Opción B "); Console.SetCursorPosition(0, 3); Console.Write(" ( ) Opción C "); if (opcionA == false && opcionB == true && opcionC == false) { Console.SetCursorPosition(3, 1); Console.Write(opA); Console.SetCursorPosition(3, 2); Console.Write(opB); Console.SetCursorPosition(3, 3); Console.Write(opC); } else { Console.SetCursorPosition(3, 1); Console.Write(opA); Console.SetCursorPosition(3, 2); Console.Write(opB); Console.SetCursorPosition(3, 3); Console.Write(opC); } break; case 2: Console.SetCursorPosition(0, 0); Console.Write(" ** TÍTULO ** "); Console.SetCursorPosition(0, 1); Console.Write(" ( ) Opción A "); Console.SetCursorPosition(0, 2); Console.Write(" ( ) Opción B "); Console.SetCursorPosition(0, 3); Console.Write("> ( ) Opción C "); if (opcionA == false && opcionB == false && opcionC == true) { Console.SetCursorPosition(3, 1); Console.Write(opA); Console.SetCursorPosition(3, 2); Console.Write(opB); Console.SetCursorPosition(3, 3); Console.Write(opC); } else { Console.SetCursorPosition(3, 1); Console.Write(opA); Console.SetCursorPosition(3, 2); Console.Write(opB); Console.SetCursorPosition(3, 3); Console.Write(opC); } break; case 3: Console.SetCursorPosition(0, 0); Console.Write(" ** TÍTULO ** "); Console.SetCursorPosition(0, 1); Console.Write("> SALIR "); Console.SetCursorPosition(0, 2); Console.Write(" "); Console.SetCursorPosition(0, 3); Console.Write(" "); break; default: Console.Write("Fuera de rango. "); break; } // Fin de pintar el menú principal. //****************************************************************** // Leer tecla ingresada por el usuario. tecla = Console.ReadKey(true).Key; // Validar el tipo de tecla. if (tecla == ConsoleKey.Enter) { switch (indiceSeleccionado) { case 0: opcionA = true; opcionB = false; opcionC = false; opA = "x"; opB = " "; opC = " "; break; case 1: opcionA = false; opcionB = true; opcionC = false; opA = " "; opB = "x"; opC = " "; break; case 2: opcionA = false; opcionB = false; opcionC = true; opA = " "; opB = " "; opC = "x"; break; case 3: indiceSeleccionado = 0; // Restaurar índice antes de salir. salir = true; // Salir break; default: Console.Write("Fuera de rango. "); break; } } // ¿Has pulsado tecla flecha Abajo? if (tecla == ConsoleKey.DownArrow) { indiceSeleccionado++; } // Entonces si pulsas tecla flecha Arriba. if (tecla == ConsoleKey.UpArrow) { indiceSeleccionado--; } // Si está en la última opción, salta a la primera. if (indiceSeleccionado > SELECCION_OPCIONES_TOTALES) { indiceSeleccionado = 0; } // Si está en la primera posición, salta a la última. if (indiceSeleccionado < 0) { indiceSeleccionado = SELECCION_OPCIONES_TOTALES; } // Uso la tecla escape como salida. } while (!salir); } } } } ![]()
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
#3
|
|||
|
|||
Segundo intento, sigue teniendo mucho código. Si funciona.
Código:
using System; namespace Pruebas_Opciones_Consola_01 { internal class Program { static void Main(string[] args) { #region Configuración ventana. // Título de la ventana. Console.Title = "Opciones"; // Tamaño de la ventana, x, y o, ancho y alto. const byte ancho = 20, alto = 5; Console.SetWindowSize(ancho, alto); // Quitar scroll laterales. Derecho y abajo. Console.SetBufferSize(ancho, alto); // Color de fondo. Console.BackgroundColor = ConsoleColor.Yellow; // Color de las letras. Console.ForegroundColor = ConsoleColor.Black; // Limpiar pantalla y dejarlo todo en color de fondo. Console.Clear(); // Visible el cursor. // No! Así lo haces invisible. Console.CursorVisible = false; #endregion string[] opciones = { " ** TÍTULO ** ", // Posición 0. " ( ) Opción A ", // 1 " ( ) Opción B ", // 2 " ( ) Opción C ", // 3 " SALIR ", // 4 ">", // 5 "x", // 6 " ", // 7 " " // 8 }; Menu(); #region Opociones y selecciones void OpcionesA() { Console.SetCursorPosition(0, 0); Console.Write(opciones[0]); // ** TÍTULO ** Console.SetCursorPosition(0, 1); Console.Write(opciones[1]); // ( ) Opción A Console.SetCursorPosition(0, 2); Console.Write(opciones[2]); // ( ) Opción B Console.SetCursorPosition(0, 3); Console.Write(opciones[3]); // ( ) Opción C } void OpcionesB() { Console.SetCursorPosition(0, 1); Console.Write(opciones[4]); // SALIR Console.SetCursorPosition(0, 2); Console.Write(opciones[8]); // Console.SetCursorPosition(0, 3); Console.Write(opciones[8]); // } void SelectorA() { Console.SetCursorPosition(0, 1); Console.Write(opciones[5]); // > Console.SetCursorPosition(0, 2); Console.Write(opciones[7]); Console.SetCursorPosition(0, 3); Console.Write(opciones[7]); } void SelectorB() { Console.SetCursorPosition(0, 1); Console.Write(opciones[7]); Console.SetCursorPosition(0, 2); Console.Write(opciones[5]); // > Console.SetCursorPosition(0, 3); Console.Write(opciones[7]); } void SelectorC() { Console.SetCursorPosition(0, 1); Console.Write(opciones[7]); Console.SetCursorPosition(0, 2); Console.Write(opciones[7]); Console.SetCursorPosition(0, 3); Console.Write(opciones[5]); // > } #endregion void Menu() { sbyte indiceSeleccionado = 0; // Índice seleccionado de cada opción del menú. bool salir = false; // Para salir del menú principal al INICIO. sbyte SELECCION_OPCIONES_TOTALES = 3; // Total de opciones para seleccionar y fija. string opA = "x"; string opB = " "; string opC = " "; // Capturar tecla para luego validar. ConsoleKey tecla; do { //****************************************************************** // Dibujo el menú principal. switch (indiceSeleccionado) { case 0: OpcionesA(); SelectorA(); Console.SetCursorPosition(3, 1); Console.Write(opA); Console.SetCursorPosition(3, 2); Console.Write(opB); Console.SetCursorPosition(3, 3); Console.Write(opC); break; case 1: OpcionesA(); SelectorB(); Console.SetCursorPosition(3, 1); Console.Write(opA); Console.SetCursorPosition(3, 2); Console.Write(opB); Console.SetCursorPosition(3, 3); Console.Write(opC); break; case 2: OpcionesA(); SelectorC(); Console.SetCursorPosition(3, 1); Console.Write(opA); Console.SetCursorPosition(3, 2); Console.Write(opB); Console.SetCursorPosition(3, 3); Console.Write(opC); break; case 3: OpcionesB(); Console.SetCursorPosition(0, 1); Console.Write(opciones[5]); // > break; default: Console.Write("Fuera de rango. "); break; } // Fin de pintar el menú principal. //****************************************************************** // Leer tecla ingresada por el usuario. tecla = Console.ReadKey(true).Key; // Validar el tipo de tecla. if (tecla == ConsoleKey.Enter) { switch (indiceSeleccionado) { case 0: opA = "x"; opB = " "; opC = " "; break; case 1: opA = " "; opB = "x"; opC = " "; break; case 2: opA = " "; opB = " "; opC = "x"; break; case 3: indiceSeleccionado = 0; // Restaurar índice antes de salir. salir = true; // Salir break; default: Console.Write("Fuera de rango. "); break; } } // ¿Has pulsado tecla flecha Abajo? if (tecla == ConsoleKey.DownArrow) { indiceSeleccionado++; } // Entonces si pulsas tecla flecha Arriba. if (tecla == ConsoleKey.UpArrow) { indiceSeleccionado--; } // Si está en la última opción, salta a la primera. if (indiceSeleccionado > SELECCION_OPCIONES_TOTALES) { indiceSeleccionado = 0; } // Si está en la primera posición, salta a la última. if (indiceSeleccionado < 0) { indiceSeleccionado = SELECCION_OPCIONES_TOTALES; } // Uso la tecla escape como salida. } while (!salir); } } } }
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Varios radiobutton | mjjj | Varios | 4 | 23-05-2007 11:15:13 |
radiobutton | ercrizeporta | Varios | 1 | 06-05-2007 01:49:18 |
Radiobutton | Marianin | Varios | 1 | 18-11-2005 20:51:34 |
transparencia en un radiobutton | Debian | Gráficos | 1 | 17-06-2005 16:35:27 |
RadioButton | dmagui | Firebird e Interbase | 2 | 14-06-2005 15:34:31 |
![]() |
|