2011-11-11 66 views
6

Tôi có lớp A bắt nguồn từ một lớp Windows.Form, sử dụng trình thiết kế VS2008. Khi tôi bấm đúp vào tên tệp trong Visual Studio Solution Explorer, trình thiết kế biểu mẫu sẽ mở ra. Đây là hành vi mong muốn.Vô hiệu hóa thiết kế cho một lớp dẫn xuất trong Visual Studio 2008

Tôi có lớp B thứ hai, bắt nguồn từ A (thủ công). Lớp này là mã thuần túy - nó bổ sung thêm một số chức năng nhưng biểu mẫu giống nhau - nhưng nếu tôi nhấp đúp vào tên tệp của nó trong Visual Studio Solution Explorer, nó sẽ mở trình thiết kế biểu mẫu. Đây là hành vi không mong muốn, đặc biệt là tôi sẽ cần sản xuất các lớp học có nguồn gốc tương tự C-Z.

Có cách nào để buộc tệp luôn mở trong trình chỉnh sửa mã không? Tôi biết hai cách giải quyết đề xuất:

  1. lớp Hãy cho B thuộc tính: [System.ComponentModel.DesignerCategory ("")]

    Điều này dường như đã làm việc trong quá khứ theo đăng khác nhau, nhưng dường như không có bất kỳ ảnh hưởng nào trong tình huống của tôi. Môi trường VS vẫn cố mở một trình thiết kế biểu mẫu cho lớp.

  2. Đổi tên tập tin nguồn để meaningfulname.Designer.cs

    này ... tốt, nó chỉ là không đẹp, phải không?

Giải pháp nên (1) vẫn hoạt động? Nếu vậy, tôi có thể làm gì sai?

Hoặc có giải pháp nào khác không?

Trả lời

9

Hãy thử sử dụng [System.ComponentModel.DesignerCategory("Code")] để thay thế.

+0

Tôi cũng đã thử điều này nhưng không thành công. Thời điểm B được thiết lập để lấy được từ A, môi trường phân loại nó thành một lớp GUI. Loại bỏ các lớp cơ sở, và nó bật trở lại. – MZB

+1

@MZB: Có vẻ như bạn phải sử dụng tên đủ điều kiện trong thuộc tính, bạn có chắc chắn bạn đang làm điều này không? Nếu không tôi ra khỏi đề xuất. –

+1

Một thiên tài, thưa ngài! Bạn đã đúng. Có nhập khẩu System.ComponentModel tôi đã không sử dụng đường dẫn đầy đủ điều kiện. Một lỗi Microsoft lạ ... – MZB

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