2012-01-14 15 views
11

Tôi đã nàyCác foo lớp có thể được thiết kế, nhưng không phải là lớp học đầu tiên trong các lỗi tập tin

Các foo lớp có thể được thiết kế, nhưng không phải là lớp học đầu tiên trong file

lỗi sau khi thêm lớp foo bắt nguồn từ TextBox trong tệp C# của tôi. Làm thế nào tôi có thể vượt qua nó, nó rất khó chịu.

EDIT:

Tôi muốn có nhiều lớp trong tệp của mình. Tôi muốn có một số lớp học có nguồn gốc từ TextBox chấp nhận các loại đầu vào cụ thể. Tôi không sử dụng nhà thiết kế.

EDIT2:

class NumericTextBox : TextBox 
{ 
    protected override void OnTextChanged(EventArgs e) 
    { 
     ... 
    } 
} 
+0

Đăng mã của bạn để chúng tôi có thể kiểm tra. –

+0

FYI, Nếu bạn gặp lỗi ngay cả sau khi đặt lớp học ở đầu tệp là lớp duy nhất, đã đến lúc khởi động lại studio hình ảnh. –

Trả lời

10

Bạn phải có nhiều hơn một lớp trong tệp của mình. Di chuyển lớp học của bạn lên trong file để nó có thể là lớp đầu tiên trong tập tin đó

Visual Studio đòi hỏi lớp đó chịu trách nhiệm tạo ra các tập tin để được vào lớp đầu hoặc đầu tiên của tập tin đó

+0

Tôi đã tạo tệp dưới dạng tệp nguồn. Tôi đã có một số lớp học và sau đó thêm lớp foo: TextBox – Felics

+0

Nó hoạt động nhưng tôi không muốn làm điều đó. Tôi chỉ muốn vô hiệu hóa nhà thiết kế ngu ngốc. – Felics

+0

Tôi chỉ viết: bảo vệ ghi đè void OnTextChanged (EventArgs e) để xác nhận văn bản ... Đó là một TextBox bình thường với một số xác nhận ... – Felics

2

Các thông báo lỗi là khá rõ ràng. Bạn có tệp .cs chứa nhiều lớp. Di chuyển mỗi lớp vào tập tin riêng của nó và bạn sẽ ổn thôi.

EDIT: Nếu bạn nhấn mạnh vào việc có tất cả các lớp trong cùng một tệp, hãy đặt lớp học foo ở trên cùng. Đặt hàng các vấn đề theo quy ước, nhà thiết kế sử dụng lớp đầu tiên trong tệp để điều khiển. Bạn không thể có nhiều lớp điều khiển trong cùng một tệp mà không thấy lỗi này.

+1

Tôi không sử dụng thiết kế. Tôi không muốn sử dụng nhà thiết kế. Là mã thuần túy ở đó. Tôi đã tạo tệp dưới dạng tệp Mã. – Felics

+1

Nếu bạn không sử dụng trình thiết kế, bạn không nên thấy thông báo lỗi này. Các nhà thiết kế là những gì cho thấy nó. –

7

Nếu bạn don 't cần thiết kế hoàn toàn thuộc tính lớp này nên làm như lừa:

[System.ComponentModel.DesignerCategory("")] 
+0

Đây là giải pháp mà tôi nhận được là những gì Felics đang tìm kiếm. Tôi cũng có một số mã, như ServiceBase, mà tôi không bao giờ cần phải "thiết kế". Tôi đã sử dụng giải pháp này và nó sửa chữa mọi thứ cho tôi. –

0

Hoặc class.Designer.cs tập tin của bạn HOẶC class.cs tập tin của bạn sẽ có một lớp được định nghĩa ở trên cùng của nó. Vì lớp được định nghĩa trong cả hai tệp dưới dạng lớp partial, hãy đảm bảo kiểm tra cả hai tệp!

0

Đồng thời, tên của tệp phải khớp với tên của lớp. Ví dụ file myClass.designer.cs mong đợi lớp myClass Vì vậy hãy kiểm tra lỗi chính tả.

Các vấn đề liên quan