Este dilema se puede resolver de variadas maneras, pero en este caso te dejamos la que en nuestra opinión es la respuesta más completa.
La principal causa de error es lo que dijeron Fᴀʀʜᴀɴ y Yuval:
throw new NotImplementedException();
Pero hay otra cosa importante a la que debes prestar atención.
OP: si eliminaré el lanzamiento de una nueva NotImplementedException(); e insertará, por ejemplo, MessageBox.Show(“Test”); cada vez que abra Form2, el cuadro de mensaje aparecerá como si ejecutara la aplicación
Si se da cuenta, no recibirá este error en el diseñador de Form1
. Pero porque tu Form2
hereda de Form1
recibe este error.
Es porque, cuando abre un formulario en el diseñador, el diseñador crea una instancia de clase base de su formulario para mostrar su formulario. Significa que en lugar de crear una instancia de Form2
crea una instancia de Form1
carreras Form1
constructor y lo aloja en la superficie de diseño, y luego deserializa los códigos en InitializeComponent
de Form2
y coloca los componentes en la superficie de diseño.
Es por eso que recibe el error cuando ve su Form2
en el diseñador, pero no recibió ningún error al abrir el Form1
en diseñador.
Para resolver el problema:
- Puede eliminar la implementación y dejar que la implementación esté vacía.
-
También puede evitar el error evitando ejecutar el código en
Form_Load
fd estás en el modo de diseño usandoDesignMode
propiedad, enForm1_Load
:si (Modo Diseño) regresa;
Probablemente encontrará estas respuestas útiles e interesantes:
- No se puede ver el diseñador al codificar un formulario en C#
- Mostrar controles agregados programáticamente en la aplicación WinForms en la vista Diseño
¿Qué está pasando y cómo resolver el problema?
Esto es bastante trivial. Si hubiera depurado su código, vería que está arrojando un NotImplementedException
en su llamada de método, es por eso que comentarlo funciona:
public void Retrive()
throw new NotImplementedException();
En lugar de lanzar, quizás desee implementar la lógica del método real.
valoraciones y reseñas
Te invitamos a corroborar nuestra misión poniendo un comentario y puntuándolo te estamos agradecidos.