2009-02-19 18 views
26

Używam Visual C# Express do pisania aplikacji Windows Form i nazywam się old school, ale nie lubię projektanta. Jest to uciążliwe i zanieczyszcza mój projekt wieloma niepotrzebnymi plikami, a także niechcianym generowanym przez małpy kodem źródłowym.Wyłącz projektanta w Visual Studio?

Proszę mi powiedzieć, że istnieje sposób całkowitego wyłączenia tej funkcji.

Odpowiedz

3

Po prostu nie dodawaj "nowego formularza", dodaj do projektu nową klasę i dziedzicz go z klasy Forma.

+1

Myślę, że ta odpowiedź zmieniła moje życie. Mogę teraz pisać aplikacje w formacie C++/CLI w ten sam sposób, w jaki normalnie pisałbym Javę, bez konieczności używania C#. Nigdy nie myślałem o korzystaniu z C++/CLI bez projektanta, ale jest pięknie wydajny. – Dmitry

+0

To nie odpowiada poprawnie na pytanie. -1 –

27

Kliknięcie prawym przyciskiem myszy pliku projektu i wybranie opcji Otwórz za pomocą pozwala ustawić wartości domyślne otwierania plików.

+0

OK, dzięki, to duża pomoc. Nie zdawałem sobie sprawy, że mogę ustawić domyślny otwieracz dla pliku. Kliknięcie prawym przyciskiem myszy i wybranie "kodu widoku" za każdym razem było kłopotliwe. –

+0

To właśnie pokazało mi, jak pozbyć się widoków widoku projektu SQL w Visual Studio 2012 i przywrócić go do otwarcia za pomocą edytora T-SQL. Dzięki, Richard z przeszłości! –

+0

Zgadza się, ale bądź ostrożny. Jeśli otworzysz projektanta przypadkowo, może to zepsuć twój odręczny kod. –

0

Jeśli nie chcesz używać projektanta, nie używaj go?

Można stworzyć nową postać od podstaw, bez projektanta generując żadnego kodu poprzez stworzenie nowej pustej klasie, i niech klasy dziedziczą z System.Windows.Forms.Form

Następnie, VS.NET będzie prawdopodobnie nadal wskazywać, że klasa jest Formularz i możesz go otworzyć w projektancie, jeśli chcesz. (I upuść na nim kontrole).

+0

Problem polega na tym, że otwiera się domyślnie za każdym razem, gdy otwierany jest określony typ pliku. – Cephron

84

Dodaj atrybut [System.ComponentModel.DesignerCategory("")] przed klasą interfejsu użytkownika, aby uniknąć dwukrotnego kliknięcia przez projektanta.

Należy pamiętać, że włączenie System.ComponentModel u góry pliku, a następnie dodanie atrybutu jako [DesignerCategory("")] nie będzie działać (przynajmniej nie w Visual Studio 2010/2013). Musisz użyć pełnej nazwy typu atrybutu kwalifikowanej przestrzeni nazw.

+1

Wydaje się również, że musisz usunąć " Formularz" z wpisu pliku w pliku projektu (np. Plik .csproj), przynajmniej w VS 2010 –

+0

Powtórzę komentarze z @wizlb dla VS2012 – Steve

+0

W VS2013, to był " Komponent" raczej niż formą, ale punkt Matta jest poprawny. Nic nie stanie się inaczej. – RobinHood70

2

Frederik, masz rację, ale nie w jednym fakcie. (o tym chciał wiedzieć.) Gdy tylko dziedziczysz z dowolnego komponentu, studio próbuje go otworzyć w edytorze projektantów. To jest domyślne zachowanie wizualnego studia.

Po dwukrotnym kliknięciu pliku w eksploratorze rozwiązań zostanie otwarty projektant. To naprawdę denerwujące, jeśli zawsze dostajesz takiego dziwnego projektanta dla klas, które są po prostu odziedziczone po Komponencie, ale nie zawierają żadnych widocznych rzeczy.

Jedyną rzeczą, która naprawdę mi pomógł, było ustawić ten atrybut: [System.ComponentModel.DesignerCategory („”)]

nie wiedział to =) tak chłodnym podpowiedź!

Po prostu pojawia się problem z częściowymi klasami MainForm. Potem krzyczy „duplikat atrybut” ...

Czy tutaj ktoś zna rozwiązanie, aby uniknąć niektórych częściowe klasa-Files projektant być otwarty na podwójnym kliknięciem (bez duplikatu błędu atrybut skompilować?)


Myślę, że znalazłem mały błąd, w VS2005 ... Ustawiając atrybut klasy DesignerCategory na częściowej klasie formularza, przy zapisywaniu eksplorator rozwiązań wyświetla ikonę, identyfikując plik jako plik AC# (brak formularza) .

Następnie umieszczam komentarz (//) przed atrybutem - i otwiera on plik w widoku kodu. Również po zamknięciu i ponownym otwarciu jest przechowywany wewnętrznie jako nieprzypisany formularz-część. Nawet po ponownym otwarciu kompletnego rozwiązania.

Więc myślę, że nie ma żadnych informacji w pliku roztwór lub projektu ...

... Znalazłem to w pliku .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> 

...

Aktualizacje programu Studio od czasu do czasu - następnie zaktualizowano ponownie pliki formularzy (doh) ... ok .. ale prawdopodobnie istnieje obejście, aby tego uniknąć.


ciach ... ostatnia edycja ... znaleźć coś:

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

(nazwa pliku, który chcesz otworzyć bez projektanta do .Designer.cs)

(Tak, musisz nadać nazwę LOL) Wydaje się działać.

5

Właściwie wszystko, co musisz zrobić w VS2010 to kliknij prawym przyciskiem myszy plik .cs, który chcesz , nie chcesz otworzyć w projektancie, wybierz opcję "Otwórz za pomocą", a następnie ustaw CSharp jako domyślny . Zauważ, że widok formularza jest domyślny przed jego zmianą.

+0

Zgadza się, ale potem możesz przypadkowo otworzyć projektanta.Mam formularz, w którym ściśle ** muszę ** zabronić wywoływania projektanta, ponieważ projektant psuje kod. –

Powiązane problemy