Как спрятать в Visual Studio окно свойств и панель элементов, когда активен редактор кода?
Почему то в Visual Studio, применяется один макет окон, когда активно окно в режиме конструктора и когда активно окно в режиме кода. Причины наверно есть, ведь можно и одновременно открыть на части экрана и то и то. Но я такой возможностью не пользуюсь и мне не удобно, что часть экрана когда я пишу код занимают окна свойств и панель элементов, которые мне нужны, когда я пользуюсь конструктором. Возможно ли настроить студию так, чтобы автоматически скрывать их, когда у меня активно окно с кодом, и автоматически отображать, когда активно окно конструктора? P.S. У меня версия 2008, ответ ищется для неё. Но прошу также оставлять ответы для любой версии.
Отслеживать
user177221
задан 23 июл 2016 в 1:33
2,680 2 2 золотых знака 25 25 серебряных знаков 53 53 бронзовых знака
Это можно сделать с помощью макросов. Смотрите этот вопрос. В более новых версиях VS макросов уже нет.
25 июл 2016 в 13:55
@AlexanderPetrov, Спасибо! вроде то что нужно, но не могу заставить работать. Что нужно сделать? копирую код в модуль EnvironmentEvents моего проекта макросов MyMacros. А дальше что? Если, как вызывать какой-нибудь SUB я разобрался, то тут не понятно скопировал, сохранил, даже построить нажал, закрыл-открыл студию. И вроде ничего не происходит, брейкпоинт ставил в обработчик, не попадаю. Как его заставить работать?
26 июл 2016 в 7:13
Пишете код — можете просто нажать Shift+Alt+Enter — перейдёте в полноэкранный режим. Это не дословно то, что вы просите, но очень удобно. Не помню, работало ли в 2008 студии (под рукой нет), в 2015 точно работает. Вроде это не решарперный хоткей, а самой студии. Если у вас много мониторов — то развернёт на полный экран текущего монитора.
26 июл 2016 в 15:43
@AK, ну как не дословно! панель элементов и окно свойств пропадают, а обозреватель решения остаётся в пин-состоянии. Это ровно, то что мне нужно было, Вы решили мою проблему. Пожалуйста опубликуйте Ваш комментарий, как ответ
27 июл 2016 в 1:04
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Вот такой ещё вариант: нажимать Shift+Alt+Enter , когда вы переходите в режим правки кода.
Это стандартный студийный хоткей View.FullScreen .
Под рукой студия 2015, проверил у коллег в 2012 и 2010 — работает. 2008 под рукой нет, но думаю, что тоже сработает.
Отслеживать
117 5 5 бронзовых знаков
ответ дан 27 июл 2016 в 7:28
28.6k 19 19 золотых знаков 58 58 серебряных знаков 136 136 бронзовых знаков
да в 2008 работает. Галочку точно вам, а вот для баунти сложный выбор, все ответы хороши))
27 июл 2016 в 7:30
Конкурс подошел к концу. Этот ответ, не позволяет автоматически скрывать ненужные окна, но 1) он единственный, который мне подошел 2) набрал больше голосов к моменту завершения 3) очень прост в реализации, вообще ничего не надо делать 4) подходит ко всем версиям студии 5) получает баунти
1 авг 2016 в 7:09
@3per Пользуйтесь на здоровье. Вообще, не ожидал, что такой простой рецепт подойдёт, сначала даже комментарий не хотел делать.
1 авг 2016 в 7:49
Но прошу также оставлять ответы для любой версии
Начиная с версии Visual Studio “14” CTP 2 : https://blogs.msdn.microsoft.com/visualstudio/2014/07/08/visual-studio-14-ctp-2-available/ появилась возможность сохранять разметку открытых окон в IDE.
Если кратко, то расставляешь окна как тебе удобно и в верхнем меню выбираешь Window > Save Window Layout . Потом расставляешь окна по-другому как нужно и сохраняешь еще одну разметку. Переключение между разметками с помощью сочетания клавиш: CTRL + ALT + 1..0
Единственный минус — данная фича отсутствует в Visual Studio 2008
Отслеживать
ответ дан 25 июл 2016 в 15:53
466 2 2 серебряных знака 15 15 бронзовых знаков
В Visual Studio 2005/2008 скрывать и показывать окна и панели можно с помощью макросов. Смотрите этот ответ. К сожалению, в данный момент у меня нет доступа к предыдущим версиям VS, а в новых версиях макросы отсутствуют.
Устанавливать ненужную мне версию Студии я не горю желанием, однако я установил расширение Visual Commander (доступно для версий 2010-2015; невозможно установить в Express-версии). Опробовал на VS2015 Community.
После его установки и перезапуска Студии в меню появится пункт VCmd. Выбираем пункт Extensions, добавляем новое расширение, даём ему подходящее название (HideToolboxAndPropertiesPanes), выбираем язык C# v4.0 и вводим следующий код:
using EnvDTE; using EnvDTE80; using Microsoft.VisualStudio.Shell; public class E : VisualCommanderExt.IExtension < public void SetSite(DTE2 DTE, Package package) < dte = DTE; windowEvents = DTE.Events.WindowEvents; windowEvents.WindowActivated += OnWindowActivated; >public void Close() < windowEvents.WindowActivated -= OnWindowActivated; >private void OnWindowActivated(Window gotFocus, Window lostFocus) < if (gotFocus.Caption.EndsWith(" [Design]")) < dte.Windows.Item(Constants.vsWindowKindProperties).AutoHides = false; dte.Windows.Item(Constants.vsWindowKindToolbox).AutoHides = false; >else < dte.Windows.Item(Constants.vsWindowKindProperties).AutoHides = true; dte.Windows.Item(Constants.vsWindowKindToolbox).AutoHides = true; >> private DTE2 dte; private WindowEvents windowEvents; >
Щёлкаем по кнопкам Compile, Install. Готово! Наш макрос-расширение установлен. Теперь окна Properties и Toolbox автоматически показываются, когда активен документ, содержащий строку [Design] в названии и скрываются во всех остальных случаях.
Как включить свойства в visual studio
С помощью специального окна Properties (Свойства) справа Visual Studio предоставляет нам удобный интерфейс для управления свойствами элемента:
Большинство этих свойств оказывает влияние на визуальное отображение формы. Пробежимся по основным свойствам:
- Name : устанавливает имя формы — точнее имя класса, который наследуется от класса Form
- BackColor : указывает на фоновый цвет формы. Щелкнув на это свойство, мы сможем выбрать тот цвет, который нам подходит из списка предложенных цветов или цветовой палитры
- BackgroundImage : указывает на фоновое изображение формы
- BackgroundImageLayout : определяет, как изображение, заданное в свойстве BackgroundImage, будет располагаться на форме.
- ControlBox : указывает, отображается ли меню формы. В данном случае под меню понимается меню самого верхнего уровня, где находятся иконка приложения, заголовок формы, а также кнопки минимизации формы и крестик. Если данное свойство имеет значение false, то мы не увидим ни иконку, ни крестика, с помощью которого обычно закрывается форма
- Cursor : определяет тип курсора, который используется на форме
- Enabled : если данное свойство имеет значение false, то она не сможет получать ввод от пользователя, то есть мы не сможем нажать на кнопки, ввести текст в текстовые поля и т.д.
- Font : задает шрифт для всей формы и всех помещенных на нее элементов управления. Однако, задав у элементов формы свой шрифт, мы можем тем самым переопределить его
- ForeColor : цвет шрифта на форме
- FormBorderStyle : указывает, как будет отображаться граница формы и строка заголовка. Устанавливая данное свойство в None можно создавать внешний вид приложения произвольной формы
- HelpButton : указывает, отображается ли кнопка справки формы
- Icon : задает иконку формы
- Location : определяет положение по отношению к верхнему левому углу экрана, если для свойства StartPosition установлено значение Manual
- MaximizeBox : указывает, будет ли доступна кнопка максимизации окна в заголовке формы
- MinimizeBox : указывает, будет ли доступна кнопка минимизации окна
- MaximumSize : задает максимальный размер формы
- MinimumSize : задает минимальный размер формы
- Opacity : задает прозрачность формы
- Size : определяет начальный размер формы
- StartPosition : указывает на начальную позицию, с которой форма появляется на экране
- Text : определяет заголовок формы
- TopMost : если данное свойство имеет значение true , то форма всегда будет находиться поверх других окон
- Visible : видима ли форма, если мы хотим скрыть форму от пользователя, то можем задать данному свойству значение false
- WindowState : указывает, в каком состоянии форма будет находиться при запуске: в нормальном, максимизированном или минимизированном
Программная настройка свойств
С помощью значений свойств в окне Свойства мы можем изменить по своему усмотрению внешний вид формы, но все то же самое мы можем сделать динамически в коде. Перейдем к коду, для этого нажмем правой кнопкой мыши на форме и выберем в появившемся контекстном меню View Code (Просмотр кода). Перед нами открывается файл кода Form1.cs. Изменим его следующим образом:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace HelloApp < public partial class Form1 : Form < public Form1() < InitializeComponent(); Text = "Hello World!"; this.BackColor = Color.Aquamarine; this.Width = 250; this.Height = 250; >> >
В данном случае мы настроили несколько свойств отображения формы: заголовок, фоновый цвет, ширину и высоту. При использовании конструктора формы надо учитывать, что весь остальной код должен идти после вызова метода InitializeComponent() , поэтому все установки свойств здесь расположены после этого метода.
Установка размеров формы
Для установки размеров формы можно использовать такие свойства как Width/Height или Size. Width/Height принимают числовые значения, как в вышеприведенном примере. При установке размеров через свойство Size, нам надо присвоить свойству объект типа Size:
this.Size = new Size(200,150);
Объект Size в свою очередь принимает в конструкторе числовые значения для установки ширины и высоты.
Начальное расположение формы
Начальное расположение формы устанавливается с помощью свойства StartPosition , которое может принимать одно из следующих значений:
- Manual : Положение формы определяется свойством Location
- CenterScreen : Положение формы в центре экрана
- WindowsDefaultLocation : Позиция формы на экране задается системой Windows, а размер определяется свойством Size
- WindowsDefaultBounds : Начальная позиция и размер формы на экране задается системой Windows
- CenterParent : Положение формы устанавливается в центре родительского окна
Все эти значения содержатся в перечислении FormStartPosition , поэтому, чтобы, например, установить форму в центре экрана, нам надо прописать так:
this.StartPosition = FormStartPosition.CenterScreen;
Фон и цвета формы
Чтобы установить цвет как фона формы, так и шрифта, нам надо использовать цветовое значение, хранящееся в структуре Color:
this.BackColor = Color.Aquamarine; this.ForeColor = Color.Red;
Кроме того, мы можем в качестве фона задать изображение в свойстве BackgroundImage , выбрав его в окне свойств или в коде, указав путь к изображению:
this.BackgroundImage = Image.FromFile("C:\\Users\\Eugene\\Pictures\\3332.jpg");
Чтобы должным образом настроить нужное нам отображение фоновой картинки, надо использовать свойство BackgroundImageLayout , которое может принимать одно из следующих значений:
- None : Изображение помещается в верхнем левом углу формы и сохраняет свои первоначальные значения
- Tile : Изображение располагается на форме в виде мозаики
- Center : Изображение располагается по центру формы
- Stretch : Изображение растягивается до размеров формы без сохранения пропорций
- Zoom : Изображение растягивается до размеров формы с сохранением пропорций
Например, расположим форму по центру экрана:
this.StartPosition = FormStartPosition.CenterScreen;
Окно Properties в Visual Studio
Одно из наиболее часто используемых инструментальных окон в системе Visual Studio 2013 — окно Properties ( F4 ), показанное на рисунке ниже. Окно Properties состоит из сетки свойств и является контекстно-зависимым, отображая только релевантные свойства выделенного элемента, независимо от того, является ли этот элемент узлом в окне Solution Explorer или элементом формы. Каждая строка отображает свойство, имеющее имя и соответствующее значение, записанные в двух столбцах. На рисунке ниже показана обновленная сетка свойств для приложений WPF, содержащая пиктограмму предварительного просмотра и возможности поиска.
Окно Properties позволяет группировать свойства или сортировать их по алфавиту. Это окно имеет встроенные редакторы для многих системных типов, таких как цвета, шрифты, якоря и стыковки, которые вызываются, когда вы щелкаете на столбце значений изменяемых свойств. Когда вы выбираете свойство его имя подсвечивается, а в левой области сетки свойств появляется его описание.
Для веб- и WPF-приложений набор свойств в окне Properties сохраняется в виде файлов разметки с расширением *.aspx или *.xaml соответственно. Как и в проектировщике форм Windows, в окне Properties отображаются только те свойства, которые постоянно хранятся в файле разметки.
Окно Properties предлагает средства для подключения обработчиков событий в виде кнопки со значком молнии в правом верхнем углу.
Расширение окна Properties
В проектах Window Forms система Visual Studio 2013 выделяет свойства, подлежащие изменению, полужирным шрифтом. У вас должен был возникнуть вопрос: откуда система Visual Studio 2013 знает, каким должно быть значение по умолчанию? Ответ заключается в том, что когда окно Properties просматривает объект, чтобы определить, какие свойства должны отражаться в сетке свойств, она перебирает большое количество атрибутов проекта. Эти атрибуты можно использовать для управления отображением свойств, выбора редактора, который должен использоваться для изменения значений, а также для выбора значения, заданного по умолчанию.
Для того чтобы показать, как можно использовать эти атрибуты для создания своих собственных компонентов, начнем с добавления простого элемента управления WPF, унаследованного от Button и имеющего одно автоматическое свойство:
using System.Windows.Controls; using System.ComponentModel; namespace GettingStarted < public class SampleButton : Button < public string Description < get; set; >> >
Давайте добавим этот элемент в окно MainWindow.xaml:
На рисунке ниже показано новое свойство Description в окне Properties. Чтобы быстрее его найти среди других свойств, я воспользовался поиском:
Атрибут Browsable
По умолчанию в сетке свойств отображаются все открытые свойства. Однако вы можете явно управлять его поведением, добавив атрибут Browsable (из пространства имен System.ComponentModel). Если вы установите это свойство равным false, то оно не будет показано в сетке свойств.
[Browsable(false)] public string Description
Атрибут DisplayName
Атрибут DisplayName вполне очевиден: он позволяет изменять имя свойства. В данном случае мы можем изменить имя свойства, которое появится в сетке свойств с Description на «Описание элемента управления»:
[DisplayName("Описание элемента управления")] public string Description
Атрибут Description
Кроме возможности задавать имя свойства по своему усмотрению, целесообразно также предоставлять описание, которое должно появляться в нижней части окна Properties, когда выбирается соответствующее свойство. Это гарантирует, что пользователи компонента знают его свойства.
[DisplayName("Описание элемента управления")] [Description("Мое первое свойство")] public string Description
Атрибут Category
По умолчанию любое видимое свойство размещается в группе Miscellaneous, если окно Properties имеет сгруппированное представление. Используя атрибут Category, вы сможете разместить ваше свойство в любой из существующих групп, таких как Appearance или Data, или в новой группе, если укажете имя группы, которой еще нет.
[Category("Text")] public string Description
Атрибут DefaultValue
Система Visual Studio 2013 выделяет свойства, которые были изменены по сравнению со своим начальным значением или значением, заданным по умолчанию. Атрибут DefaultValue определяет, как система Visual Studio 2013 выполняет поиск значений, заданных по умолчанию для указанного свойства.
[DefaultValue("")] public string Description
В данном случае, если значение свойства Description установлено равным «», система Visual Studio 2013 удаляет строку кода, которая устанавливает это свойство. Если вы изменили это свойство и хотите вернуть его первоначальное значение, щелкните правой кнопкой мыши в окне Properties и выполните команду Reset в контекстном меню.
Следует подчеркнуть, что атрибут DefaultValue не устанавливает начальное значение вашего свойства. Если вы задаете атрибут DefaultValue, то рекомендуется одновременно установить начальное значение точно так же, как и в предшествующем коде.
Атрибут AmbientValue
Одно из свойств, которое мы все принимаем как должное, но лишь некоторые действительно понимают до конца, — это концепция сочетаемости объекта с внешним окружением. Типичными примерами являются цвета и шрифты переднего и заднего плана: если их не установить явно в окне Properties, они наследуются, но не от базового класса, а от своих родительских элементов управления. Более широкое определение концепции сочетаемости трактует его как свойство, которое принимает свое значение от другого источника.
Как и атрибут DefaultValue, атрибут AmbientValue используется для того, чтобы служить индикатором для системы Visual Studio 2013, когда она не должна добавлять код в файл проектировщика. К сожалению, при работе со свойствами зависимости невозможно жестко задать в коде значение, с которым следует сравнивать текущее значение, поскольку оно зависит от значения, заданного в источнике свойств. Из-за этого, когда вы определяете атрибут AmbientValue, вы поручаете проектировщику искать функцию ShouldSerializePropertyName. В данном случае эта функция называется ShouldSerializeDescription, и этот метод вызывается для того, чтобы определить, следует ли хранить текущее значение свойства в исходном файле проектировщика.
using System.Windows.Controls; using System.ComponentModel; namespace GettingStarted < public class SampleButton : Button < const string defValue ; string defaultDesc = defValue; [AmbientValue(defValue)] public string Description < get < if (this.defaultDesc == defValue && this.Parent is TextBlock) return (Parent as TextBlock).Text; return defaultDesc; >set < defaultDesc = value; >> > >
Когда вы создаете элемент управления с данным свойством, начальное значение должно быть установлено равным константе DefaultDescription, но в проектировщике вы можете увидеть значение, соответствующее значению Parent.Text.
В этой и предыдущих статьях вы увидели в действии три основных инструментальных окна — Solution Explorer, Toolbox и Properties. Зная правила манипулирования этими окнами, вы сэкономите много времени на этапе разработки. Однако истинная мощь системы Visual Studio 2013 проявляется, когда вы начинаете инкорпорировать свой опыт разработчика в собственные компоненты. Это может оказаться полезным, даже если ваши компоненты будут использоваться только в вашей организации. Эффективно используя проектировщик, можно улучшить не только процесс проектирования с помощью собственных элементов управления, но и повысить производительность создаваемого приложения.
Как открыть окно свойств?
Окно свойств проекта
Окно свойств открывается не в том формате, что нужно.Переустановка vs и импорт с другой студии не.
Открыть окно для вывода информации о переменных во время отладки
Привет форумчане =) 3то, наверное, самьІй тупой вопрос на форуме. но, я не знаю как так.
Открыть окно свойств принтера
Вводим имя принтера в текстовое поле, нажимаем на кнопку, появляется окно свойств принтер.
Как закрыть окно формы и открыть окно другой
Код такой. Нужно по нажатии кнопки закрыть форму 1 и открыть форму 2. но, что-то так не работает.