C sharp - Selección de opciones con radioButton

 
Vista:
sin imagen de perfil
Val: 168
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Selección de opciones con radioButton

Publicado por Meta (138 intervenciones) el 06/08/2024 17:51:27
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?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
using System;
 
namespace Pruebas_Opcioines_Consola_01
{
    internal class Program
    {
        static void Main(string[] args)
        {
 
 
            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);
            }
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder