Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SplitContainer ISupportInitialize issue: VS2010 Targeting .NET 3.5

In VS2010 I had a project targeting .NET Framework 4.0 and then had to revert to target v. 3.5. Once this happened, the SplitContainer object that I had will not display and will actually throw an error: "Unable to cast object of type 'System.Windows.Forms.SplitContainer' to type 'System.ComponentModel.ISupportInitialize'."

Now, I did some digging and found out that 3.5 does not, in fact, have ISupportInitialize on the SplitContainer and it does in .NET 4.0. I guess my question is, if I am targeting 3.5 and still getting this issue, how do i correct this?

Steps to reproduce problem:

  1. Create a new C# Windows Forms Application project in Visual Studio 2010 (Make sure to target .NET Framework 4.0)
  2. Add a split container to the basic form.
  3. Run the application (will run just fine)
  4. Change target to .NET Framework 3.5 (properties->Applications->Target Framework:)
  5. Rerun the application (It will crash with the Cast exception).

Any help with this would be greatly appreciated!

like image 295
Austin Avatar asked May 09 '11 21:05

Austin


2 Answers

I found the solution to this problem and it was quite special... IF you backrev your forms to 3.5, you have to do a small change on EACH AND EVERY form you have in your program so that the compiler will regenerate all of the code for that form. The reason I was having an issue was because I had made no change and was trying to run the code, which had not been regenerated.

like image 179
Austin Avatar answered Oct 13 '22 19:10

Austin


As @tomash mentioned to removes the line of BeginInit() and EndInit() on that specific control is enough.

SplitContainer.BeginInit

.NET Framework Supported in: 4.5, 4

Click here for more info about this method.

like image 22
Lex van Buiten Avatar answered Oct 13 '22 21:10

Lex van Buiten