Mircea Ispas
Mircea Ispas

Reputation: 20780

The class foo can be designed, but is not the first class in the file error

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

Answers (5)

Rob
Rob

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

noelicus
noelicus

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

ren
ren

Reputation: 3993

If you don't need designer altogether this class attribute should do the trick:

[System.ComponentModel.DesignerCategory("")]

Upvotes: 7

Chris Shain
Chris Shain

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

Haris Hasan
Haris Hasan

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

Related Questions