2009-02-19 41 views
26

Tôi đang sử dụng Visual C# Express để viết các ứng dụng Windows Form, và gọi cho tôi trường cũ, nhưng tôi không thích nhà thiết kế. Đó là một mối phiền toái và gây ô nhiễm cho dự án của tôi với rất nhiều tệp không mong muốn, cũng như mã nguồn do khỉ không mong muốn tạo ra.Tắt trình thiết kế trong Visual Studio?

Vui lòng cho tôi biết có cách tắt hoàn toàn.

Trả lời

3

Chỉ cần không thêm "biểu mẫu mới", thêm vào dự án lớp mới và kế thừa anh ta từ lớp Biểu mẫu.

+1

Tôi nghĩ câu trả lời này đã thay đổi cuộc đời tôi. Bây giờ tôi có thể viết các ứng dụng biểu mẫu C++/CLI giống như cách tôi thường viết Java, mà không cần phải sử dụng C#. Tôi không bao giờ nghĩ đến việc sử dụng C++/CLI mà không có nhà thiết kế trước đây, nhưng nó rất đẹp. – Dmitry

+0

Điều này không trả lời đúng câu hỏi. -1 –

27

Nhấp chuột phải vào tệp dự án và chọn mở với cho phép bạn đặt mặc định để mở các loại tệp.

+0

OK, cảm ơn, đó là một trợ giúp lớn. Tôi đã không nhận ra rằng tôi có thể đặt trình mở khóa mặc định cho một tệp. Đó là một phiền toái nhỏ để nhấp chuột phải và chọn "xem mã" mỗi lần. –

+0

Điều này chỉ cho tôi thấy làm thế nào để thoát khỏi công cụ xem thiết kế SQL trong Visual Studio 2012 và thiết lập nó trở lại để chỉ cần mở nó với một T-SQL Editor. Cảm ơn, Richard từ quá khứ! –

+0

Đúng vậy nhưng hãy cẩn thận. Nếu bạn vô tình mở trình thiết kế, nó có thể làm hỏng mã viết tay của bạn. –

0

Nếu bạn không muốn sử dụng nhà thiết kế thì không sử dụng?

Bạn có thể tạo một hình thức mới từ đầu, mà không nhà thiết kế tạo ra bất kỳ mã bằng cách tạo ra một lớp trống mới, và để cho các kế thừa lớp từ System.Windows.Forms.Form

Sau đó, VS.NET sẽ có lẽ vẫn chỉ ra rằng lớp học của bạn là một Biểu mẫu và bạn vẫn có thể mở nó trong trình thiết kế nếu bạn muốn. (Và thả điều khiển trên nó).

+0

Vấn đề là khi nó mở theo mặc định mỗi khi bạn mở một loại tệp cụ thể. – Cephron

84

Thêm thuộc tính [System.ComponentModel.DesignerCategory("")] trước lớp UI để tránh kích hoạt thiết kế khi nhấp đúp.

Lưu ý rằng bao gồm System.ComponentModel ở đầu tệp và sau đó chỉ thêm thuộc tính là [DesignerCategory("")] sẽ không hoạt động (ít nhất là không có trong Visual Studio 2010/2013). Bạn phải sử dụng tên loại thuộc tính đủ điều kiện, không gian tên.

+1

Bạn cũng dường như phải xóa " Biểu mẫu" khỏi mục nhập của tệp trong tệp dự án (ví dụ: tệp .csproj), ít nhất trong VS 2010 –

+0

Tôi lặp lại các nhận xét từ @wizlb cho VS2012 – Steve

+0

Trong VS2013, nó là " Thành phần" thay vì hình thức, nhưng điểm Matt là chính xác. Không có gì sẽ xảy ra nếu không. – RobinHood70

2

Frederik, chắc chắn bạn đúng, nhưng không phải trong thực tế. (Điều này tôi muốn biết) Ngay sau khi bạn kế thừa từ bất kỳ Thành phần nào, studio cố gắng mở nó trong trình chỉnh sửa thiết kế. Đó là hành vi mặc định của studio trực quan.

Nếu bạn nhấp đúp vào một tệp trong trình khám phá giải pháp, thì người thiết kế sẽ mở ra. Vì vậy, nó thực sự gây phiền nhiễu nếu bạn luôn có được nhà thiết kế kỳ lạ như vậy cho các lớp học được thừa hưởng từ một thành phần, nhưng không chứa bất kỳ thứ nhìn thấy được.

Điều duy nhất mà thực sự giúp tôi ra, là để thiết lập thuộc tính này: [System.ComponentModel.DesignerCategory ("")]

Tôi không biết điều này =) gợi ý rất mát mẻ!

Tôi chỉ gặp sự cố với các lớp MainForm một phần. Sau đó, nó hét lên "thuộc tính trùng lặp" ...

Liệu đây ai biết một giải pháp để tránh ở một số lớp-Files phần các nhà thiết kế sẽ được mở trên nhấn đúp chuột (không có lỗi thuộc tính trùng lặp trên biên dịch?)


Tôi nghĩ mình đã tìm thấy một lỗi nhỏ, trong VS2005 ... Bằng cách thiết lập thuộc tính DesignerCategory trên lớp biểu mẫu một phần, lưu giải pháp thám hiểm sẽ hiển thị biểu tượng, xác định tệp dưới dạng tệp aC# (không có biểu mẫu) .

Sau đó, tôi đặt chú thích (//) trước thuộc tính - và nó tiếp tục mở tệp ở chế độ xem mã. Ngoài ra sau khi đóng và mở lại nó được lưu trữ nội bộ như là một phần không thể thiết kế được. Ngay cả khi mở lại giải pháp hoàn chỉnh.

Vì vậy, tôi nghĩ rằng có bất kỳ thông tin trong các giải pháp, dự án tập ...

... Tôi thấy điều này trong file csproj: ...

<Compile Include="GUI\VFormMain_Test.cs"> 
</Compile> 
<Compile Include="GUI\VFormMain_Theme.cs"> 
</Compile> 
<Compile Include="Core\VTTEnv.cs" /> 
<Compile Include="GUI\VFormMain.cs"> 
    <SubType>form</SubType> 
</Compile> 

...

Cập nhật phòng thu theo thời gian - sau đó nó cập nhật lại các tệp biểu mẫu (doh) ... ok .. nhưng có thể có một giải pháp để tránh điều này.


snip ... chỉnh sửa cuối cùng ... tìm thấy một cái gì đó:

http://social.msdn.microsoft.com/Forums/en-US/csharpide/thread/64c77755-b0c1-4447-8ac9-b5a63a681b78

(đặt tên cho tập tin bạn muốn mở mà không cần thiết kế vào designer.cs)

(Có, bạn phải đặt tên cho một cái gì đó để chuyển đổi nó của LOL) Dường như làm việc.

5

Thực tế, tất cả những gì bạn phải làm trong VS2010 là nhấp chuột phải vào tệp .cs mà bạn không mở trong trình thiết kế, chọn tùy chọn "Mở bằng ..", sau đó đặt CSharp Editor làm mặc định . Lưu ý rằng dạng xem biểu mẫu là mặc định trước khi bạn thay đổi nó.

+0

Đúng vậy, nhưng sau đó bạn vẫn có thể vô tình mở trình thiết kế.Tôi có một hình thức mà tôi nghiêm cấm ** phải ** cấm việc yêu cầu của nhà thiết kế, bởi vì nhà thiết kế đang làm rối tung mã. –

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