ejemplos .net winforms exception splitcontainer

ejemplos - Problema de SplitContainer ISupportInitialize: VS2010 Targeting.NET 3.5



splitcontainer c# ejemplos (3)

En VS2010 tuve un proyecto dirigido a .NET Framework 4.0 y luego tuve que volver al destino v. 3.5. Una vez que esto sucedió, el objeto SplitContainer que tenía no se mostrará y en realidad arrojará un error: "No se puede convertir el objeto del tipo ''System.Windows.Forms.SplitContainer'' para escribir ''System.ComponentModel.ISupportInitialize''".

Ahora, hice algunas excavaciones y descubrí que 3.5 no tiene, de hecho, ISupportInitialize en el SplitContainer y lo hace en .NET 4.0. Supongo que mi pregunta es, si estoy apuntando a 3.5 y aún tengo este problema, ¿cómo puedo corregirlo?

Pasos para reproducir el problema:

  1. Cree un nuevo proyecto de aplicación de formularios Windows Forms en Visual Studio 2010 (asegúrese de apuntar a .NET Framework 4.0)
  2. Agregue un contenedor dividido a la forma básica.
  3. Ejecutar la aplicación (se ejecutará bien)
  4. Cambiar destino a .NET Framework 3.5 (propiedades-> Aplicaciones-> Marco de destino :)
  5. Vuelva a ejecutar la aplicación (se bloqueará con la excepción Cast).

Cualquier ayuda con esto sería muy apreciada!


Como @tomash menciona para eliminar la línea de BeginInit () y EndInit () en ese control específico es suficiente.

SplitContainer.BeginInit

.NET Framework Compatible con: 4.5, 4

Haga clic here para obtener más información sobre este método.


Encontré la solución a este problema y fue bastante especial ... SI retrocede sus formularios a 3.5, debe hacer un pequeño cambio en CADA Y CADA formulario que tenga en su programa para que el compilador regenere todo el código por esa forma. La razón por la que tenía un problema era porque no había hecho ningún cambio y estaba intentando ejecutar el código, que no se había regenerado.


Esta es una publicación antigua, pero no me gustó tener que editar los archivos del diseñador cada vez, deja demasiado espacio para errores.

Acabo de subclasificar el control e implementé la interfaz para las compilaciones .net 3.5 como se muestra a continuación utilizando las directivas de preprocesador.

Solo agregando mi método como este post surgió en 2017 cuando buscaba una solución.

/// <summary> /// Split Container Control /// </summary> public class SplitContainer : System.Windows.Forms.SplitContainer #if (NET35) , ISupportInitialize #endif { #region Constructor /// <summary> /// Constructor /// </summary> public SplitContainer() : base() { } #endregion Constructor #region ISupportInitialize Methods #if (NET35) public void BeginInit() { } public void EndInit() { } #endif #endregion ISupportInitialize Methods }