¿Cómo llamar a un formulario cuando hay 3 formularios en un proyecto y transferencia de datos entre los formularios en C #?

StackOverflow https://stackoverflow.com/questions/1012631

  •  06-07-2019
  •  | 
  •  

Pregunta

Tengo 3 formularios en mi proyecto form1, form2, form3 y se estaba ejecutando sin problemas ahora, he agregado uno más en mi proyecto form4. Los primeros tres formularios ya están vinculados a través de ShowDialog ().

No quiero tocar el archivo Program.cs.

¿Cómo puedo llamar al formulario 4 primero como formulario de inicio? El formulario 1 anterior fue el primero en aparecer en mi proyecto.

También tengo 2 botones de radio en mi formulario1 rdb1 y rdb2. En mi formulario2 tengo openFileDialog adjunto a un botón Seleccionar. Ahora quiero que cuando el usuario seleccione rdb1 en form1, el filtro de openFileDialog en form2 debería abrir archivos con solo ".XML". como extensión y cuando se selecciona rdb2 en Form1 y luego solo en Form2 " .TXT " los archivos se pueden abrir.

No puedo encontrar la sintaxis para esto en intellisense, ¿pueden ayudarme?

Gracias de antemano ..

¿Fue útil?

Solución

¿Puede explicar por qué no desea tocar su archivo Program.cs? Aquí es exactamente donde cambia el formulario de inicio.

Cambiar el:

Application.Run(new Form1());

a:

Application.Run(new Form4());

En segundo lugar, puede configurar los filtros en Open- y SaveFileDialog usando la propiedad Filter. Ajústelo a un valor como este:

XML Files|*.xml

O para texto:

Text Files|*.txt

Editado para agregar:

Para hacer esto desde otra forma:

class Form1 {
  Form2 form2;

  void Form1_Load(object sender, EventArgs e) {
    form2 = new Form2();
  }

  void rdb1_CheckedChanged(object sender, EventArgs e) {
    if (rdb1.Checked) 
      form2.openFileDialog1.Filter = "XML Files|*.xml";
    else
      form2.openFileDialog1.Filter = "Text Files|*.txt";
  }
}

Asegúrese de haber configurado la propiedad Modificadores de openFileDialog1 en el diseñador de Form2 en "Público" o "Interno" para permitir el acceso desde fuera de la clase misma.

Otros consejos

Tienes que tocar program.cs. Ahí es donde se crea y ejecuta el formulario inicial.

Cree un nuevo proyecto winforms y abra program.cs. Puede ver dónde se llama a Application.Run con una instancia del formulario de inicio. Eso es lo que tienes que hacer.

No tengas miedo. Todo estará bien.


En respuesta al comentario:

El evento Form1_Load se activa dentro de Form1 por Form1. Debe volver a la cadena de llamadas y encontrar dónde se crea una instancia de Form1 y se pasa a Application.Run. Y eso está en program.cs.

Hazlo. Y luego ve a buscar una copia de CLR a través de C #. No te arrepentirás (¡siempre y cuando saltes los primeros capítulos!)

  

¿Cómo puedo llamar primero al formulario 4 como formulario de inicio?

     

No quiero tocar el archivo Program.cs.

¿Por qué no quieres tocar Program.cs? La instancia de formulario pasada a Application.Run (..) determina el formulario de inicio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top