13

Za każdym razem, gdy przeglądam formularz lub okno dialogowe w Visual Studio (2005), po prawej stronie ekranu pojawiają się panel Właściwości i Zestaw narzędzi. To dobrze, ponieważ są one przydatne do manipulowania dialogami.Ukryj okno Właściwości/Przybornik, gdy nie znajduje się w widoku zasobów?

Jednak po przełączeniu z powrotem do kodu źródłowego te panele są po prostu przeszkodą ... czy istnieje sposób na automatyczne ich odebranie?

+1

Zostało niggling na mnie odkąd zacząłem używać VS. – Blorgbeard

+0

@Blorgbeard Dzięki za oddanie nagrody! Zobaczmy, czy otrzymamy przyzwoitą odpowiedź! – theycallmemorty

+0

Prawdopodobnie musisz uściślić swoje pytanie, aby uzyskać dobrą odpowiedź. – aponomarenko

Odpowiedz

-1

Po kliknięciu ikony pinezki w tych oknach narzędzi można przełączać, czy okna pozostają otwarte przez cały czas, czy tylko wtedy, gdy mysz znajduje się w ich pobliżu. Oczywiście, czasami moja mysz odskakuje w tym kierunku i wyskakują, kiedy ich nie chcę, ale takie jest życie ...

+0

Tak, wiem o pinezce, ale tego nie szukam. :) – theycallmemorty

0

Zamiast rezygnować z przestrzeni po prawej stronie ekranu, przeciągnąłem moje właściwości i panele toolboxa na lewą ramkę, na której znajduje się eksplorator rozwiązań i widok klas itp. Wolałbym mieć jedno pole wielofunkcyjne po jednej stronie ekranu, niż żeby kod był otoczony. Jeśli potrzebujesz ich obu, możesz umieścić przybornik w okienku eksploratora rozwiązań, a następnie ułożyć panel właściwości pod eksploratorem rozwiązań, który przez cały czas utrzymuje kilka właściwości wraz z przybornikiem.

Wiem, że to nie jest odpowiedź, której szukałeś, ale jest to inny sposób na utrzymywanie tego ekranu dostępnego dla kodu bez zadzierania z funkcją automatycznego ukrywania (auto-ukrywanie jest dla mnie bardziej irytujące niż help.)

4

Zrobiłem coś ostatnio w VS2010 za pomocą makra, które pokazuje i ukrywa panel Narzędzia podczas przełączania iz powrotem z kodu do widoku projektu w widokach asp.net MVC3. Można go łatwo zaadaptować do tego samego w swojej sytuacji.

To jest w pliku klasy EnvironmentEvents w IDE VS Macro po wstępnie wygenerowanej treści.

<System.ContextStaticAttribute()> Public WithEvents CommandEvents As EnvDTE.CommandEvents 


    Public Sub DTEEvents_OnMacrosRuntimeReset() Handles _ 
    DTEEvents.OnMacrosRuntimeReset 
     CommandEvents = DTE.Events.CommandEvents 
    End Sub 

    Private Sub DTEEvents_OnStartupComplete() Handles _ 
     DTEEvents.OnStartupComplete 
     CommandEvents = DTE.Events.CommandEvents 
    End Sub 

    Public Sub CommandEvents_AfterExecute(_ 
    ByVal Guid As String, _ 
    ByVal ID As Integer, _ 
    ByVal CustomIn As Object, _ 
    ByVal CustomOut As Object) _ 
    Handles CommandEvents.AfterExecute 

     If DTE.Commands.Item(Guid, ID).Name = "View.ViewDesigner" Then 
      DTE.ExecuteCommand("View.Toolbox") 
     End If 

     If DTE.Commands.Item(Guid, ID).Name = "View.ViewMarkup" Then 
      DTE.Windows.Item(Constants.vsWindowKindToolbox).Close() 
     End If 

    End Sub 

Prawdopodobnie można go lepiej zoptymalizować za pomocą instrukcji zdarzenia, niż instrukcji if. Działa, gdy używasz klawiszy skrótu do przełączania widoków, a także menu widoku, ale nie menu kontekstowego.

+0

To wygląda obiecująco! Zobaczę, czy uda mi się sprawić, żeby działało. Wygląda na to, że łaska należy do ciebie. – Blorgbeard

+0

Jak ten kod działa? Już wkleiłem to do MyMacros.EnvironmentEvents, zapisane MyMacros, zamknięte i otwarte Visual Studio, ale kiedy przełączam się na kod źródłowy lub do projektanta, nic się nie dzieje. Co powinienem jeszcze zrobić? – 3per

2

dla vs2015:

  1. Menu> Narzędzia> Rozszerzenia i aktualizacje
  2. zainstalować "Visual Commander". (Teraz masz nowe menu o nazwie "VCmd")
  3. Menu> "VCmd"> Rozszerzenia ... (Zobaczysz okienko rozszerzeń po prawej stronie)
  4. Naciśnij przycisk Dodaj w okienku rozszerzeń. (Nowa karta WIndow zostanie otwarta.)
  5. wpisz nazwę rozszerzenia.
  6. wybierz język jako C#.
  7. Wklej poniższy kod:
  8. Naciśnij Zapisz. Następnie naciśnij przycisk Kompiluj. Następnie naciśnij Install

using EnvDTE; 
using EnvDTE80; 

public class E : VisualCommanderExt.IExtension 
{ 
    private EnvDTE80.DTE2 DTE; 
    private EnvDTE.WindowEvents windowEvents; 

    public void SetSite(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package) { 
     this.DTE = DTE; 
     DTE.Events.WindowEvents.WindowActivated += OnWindowActivated; 
    } 

    public void Close() { 
     // i read somewhere this has to be done on close. 
     // but it gives gives me error on every IDE close. so i commented it . 
     //DTE.Events.WindowEvents.WindowActivated -= OnWindowActivated; 
    } 

    private void OnWindowActivated(Window gotFocus, Window lostFocus) { 
      HidePropertiesWindowInCodeOrTextView(gotFocus); 
    } 

    public void HidePropertiesWindowInCodeOrTextView(Window gotFocus) { 
      if (gotFocus.Document == null) return; 
       var pwin = DTE.Windows.Item(Constants.vsWindowKindProperties); 
       pwin.AutoHides = !gotFocus.Caption.EndsWith(" [Design]") ; 
    } 
}