Reputation: 20780
I have this
The class foo can be designed, but is not the first class in the file
error after adding foo class derived from TextBox in my C# file. How can I pass it, it's very annoying.
EDIT:
I want to have multiple classes in my file. I want to have some classes derived from TextBox that accept specific types of input. I'm not using the designer.
EDIT2:
class NumericTextBox : TextBox
{
protected override void OnTextChanged(EventArgs e)
{
...
}
}
Upvotes: 11
Views: 8594
Reputation: 2472
ALso,the name of the file must match the name of the class. For example file myClass.designer.cs expects the class myClass So check for typos.
Upvotes: 0
Reputation: 15055
Either your class.Designer.cs
file OR your class.cs
file will have another class defined at the top of it. Since the class is defined in both files as a partial
class be sure to check both of the files!
Upvotes: 0
Reputation: 3993
If you don't need designer altogether this class attribute should do the trick:
[System.ComponentModel.DesignerCategory("")]
Upvotes: 7
Reputation: 51319
The error message is pretty clear. You have a .cs file containing multiple classes. Move each class to it's own file and you should be fine.
EDIT: If you insist on having all classes in the same file, then put the foo
class at the top. Order matters- by convention, the designer uses the first class in the file for controls. You cannot have multiple control classes in the same file without seeing this error.
Upvotes: 2
Reputation: 30097
You must have more than one classes in your file. Move your class up in the file so that it can be the first class in that file
Visual Studio requires class that was responsible for creation of file to be on top or first class of that file
Upvotes: 10