Как переименовать форму в visual studio

Обновлено: 08.07.2024

У меня есть довольно сложное решение Visual Studio (2010, но это не имеет значения), которое мне нужно переименовать.

Я хочу переименовать папки в соответствии с новым именем решения, но я не могу найти способ автоматического рефакторинга имен папок, и просмотр каждого файла проекта будет болезненным.

существует ли официальный способ сделать это? Альтернативно (и гораздо менее предпочтительно), есть ли бесплатные инструменты для этого?

ручное редактирование .файл sln

этот метод полностью направлен на переименование каталога для проекта, как показано в Проводнике Windows.

этот метод не страдает от проблем в удалить / добавить метод файла проекта ниже (ссылки исчезают), но это может привести к проблемам, если ваш проект находится под контролем источника (см. Примечания ниже). Вот почему Шаг 2 (резервное копирование) так важный.

  1. Закройте Visual Studio.
  2. создать резервную копию .sln файл (вы всегда можете откатить).
  3. представьте, что вы хотите переименовать каталог "Project1"в " Project2".
  4. если не используется система управления версиями, переименуйте папку из "Project1" в "Project2" с помощью Проводника Windows.
  5. при использовании системы управления версиями переименуйте папку из "Project1" в "Project2" с помощью функций, предоставляемых системой управления версиями. Это сохраняет история файла. Например, с TortoiseSVN щелкните правой кнопкой мыши на Файл, выберите TortoiseSVN .. Rename .
  6. в рамках .sln файл, редактировать все экземпляры "Project1", чтобы быть "Project2", используя текстовый редактор, как Блокнот.
  7. перезапустите Visual Studio, и все будет работать по-прежнему, но с проектом в другом каталоге.

преимущества

  • вы можете сделать каталог в Проводнике Windows соответствует имени проекта в решении.
  • этот метод делает не удалите все ссылки из других проектов в этот файл (преимущество перед удалить/добавить файл проекта метод, см. Мой другой ответ ниже).

предупреждения

  • это важно все на .zip-файл перед переименованием, так как этот метод может создавать проблемы с исходным кодом.
  • если ваш проект находится под контролем источник, это может создать проблемы при переименовании файлов или каталоги вне системы управления версиями (с помощью Проводника Windows). предпочтительнее переименовать файл, используя саму структуру управления версиями, если вы можете, чтобы сохранить историю этого файла (проверьте контекстное меню правой кнопкой мыши - он может иметь функцию, чтобы переименовывать файлы.)

обновление 2014-11-02

ReSharper добавил автоматизированный метод для достижения того же результата, что и ручной метод выше. Если пространство имен подчеркнуто волнистой синей линией, нажмите на значок пирамиды действий либо:

  • переименуйте пространство имен в соответствии с именем каталога в Проводнике Windows или;
  • переименуйте каталог в Проводнике Windows в соответствии с пространство имен.

во втором случае, последнее слово определяет новое имя папки в Проводнике Windows, например, если мы изменили пространство имен ViewModel2 , он предложит переместить файл в папку ViewModel2 .

однако это не обязательно будет обновлять файлы в системе управления версиями, поэтому вам все равно придется использовать ручной метод.

enter image description here

протестировано с Visual Studio 2008, 2010, 2012, 2013, 2015, 2017 Обновление 1, 2, 3, 4, 5.

вот шаги, которые необходимо выполнить, чтобы переименовать решение:

  1. в обозревателе решений щелкните проект правой кнопкой мыши, выберите пункт Переименовать и введите новое имя.
  2. в обозревателе решений щелкните проект правой кнопкой мыши и выберите Свойства. На вкладке приложение измените "имя сборки" и " по умолчанию пространство имен."
  3. в главном файле cs (или любых других файлах кода) переименуйте пространство имен объявление для использования нового имени. Для этого щелкните правой кнопкой мыши пространство имен и выберите рефакторинг > переименовать, введите новое имя. Например: namespace WindowsFormsApplication1

измените AssemblyTitle и AssemblyProduct в Свойства/Файле AssemblyInfo.цезий.

физически удалите каталоги bin и obj.

переименуйте каталог физической папки проекта.

откройте файл SLN (в блокноте или любом редакторе) и измените путь к проект.

очистить и перестроить проект.

операции переименования в visual studio изменяют только имя файла, т. е. для проекта,*.prj и для решения *.ФСЛ. Вам нужно будет переименовать папки отдельно, используя файловую систему, и вам нужно будет удалить и прочитать проекты, так как у них будут новые имена папок. Однако обратите внимание, что файлы решения и проекта являются соответственно файлами texst и xml. Вы можете написать свою собственную программу, которая анализирует их и переименовывает имена папок, имена файлов и исправляет проект/решение внутренние файлы.

вы также можете экспортировать шаблон, а затем создать новый проект из экспортированного шаблона, изменив имя, как вы предпочитаете

Ниже приведен Пошаговый способ переименования всего решения в Visual Studio 2013

предполагая, что мы меняем проект под названием " HelloWorld.ui " to " Section1to5.ui"

  1. перейдите в Обозреватель решений (скриншот ниже), щелкните правой кнопкой мыши на проект, который вы хотите переименовать, выберите "Переименовать". Введите новое имя, которое вы хотите.

Solution Explorer Screenshot

Правой Кнопкой Мыши на проекте, который вы только что переименовали, и нажмите "Свойства". На вкладке приложение измените" имя сборки "и"пространство имен по умолчанию".

в основной программе.cs-файл (или любые другие файлы кода, которые вы, возможно, создали), переименуйте объявление пространства имен, чтобы использовать новое имя. Для этого щелкните правой кнопкой мыши на пространство имен и выберите рефакторинг > переименовать, введите новое имя. Например:

пространство имен HelloWorld.ui - - - - > пространство имен Section1to5.ui

далее разверните "свойства" и дважды щелкните AssemblyInfo.cs файл. Вы заметите ниже фрагмент кода:

вам нужно изменить AssemblyTitle и AssemblyProduct в свойствах/AssemblyInfo.cs к новому имени, в этом примере от "HelloWorld.ui " to " Section1to5.пользовательский интерфейс." После изменения имени сохраните и закройте Visual Studio.

в каталог проекта, перейдите в папку " HelloWorld.ui "и удалите каталоги" bin "и" obj".

Как только вы закончите, переименуйте папку " HelloWorld.ui " для нового имени проекта.

откройте переименованный файл решений с помощью текстового редактора Notepad или Notepad++ и отредактируйте следующую строку:

замените все экземпляры "HelloWorld.ui " новое имя, которое вы выбрали для своего проекта, в данном случае "Section1to5.пользовательский интерфейс." Это изменяет путь проекта к переименованному каталогу на шаге 6.

откройте файл решений с помощью visual studio, очистите и перестройте проект.

вы можете заметить, что кнопка "Debug/Run" была заменена на Кнопка "прикрепить". Если это произойдет, просто щелкните правой кнопкой мыши на проекте и выберите опцию "Установить как проект запуска". Кроме того, нажмите Инструменты>настройка>команды>добавить команду>отладка и добавьте кнопку.

вы сделали переименование проекта, если у вас есть какие-либо сомнения, не стесняйтесь пост и я буду рад помочь!

удалите подпапки bin и obj, чтобы удалить загрузку неправильной ссылки, а затем используйте windows для поиска старого имени.

редактировать любой код или xml-файлы, найденные и перестроить, должны быть в порядке.

использование функции" Найти в файлах " Notepad++ отлично работало для меня (ctrl + H, найти в файлах).

Я попробовал переименование проекта Visual Studio, но в нескольких случаях, когда я его пробовал, он выдавал исключения.

У меня был хороший успех с CopyWiz.

удалить / добавить метод файла проекта

этот метод полностью направлен на переименование каталога для проекта, как показано в Проводнике Windows.

  1. резервное копирование всего проекта, используя что-то вроде GIT, SVN или WinZip (важно!).
  2. в решении в Visual Studio удалите проект.
  3. переименуйте каталог в Проводнике Windows.
  4. Добавить проект обратно в Visual Студия.

преимущества

  • вы можете сделать каталог в Проводнике Windows соответствует имени проекта в решении.

недостатки

  • если вы удалите библиотеку, она удаляет любые ссылки на указанную библиотеку из других проектов. Решение может не компилироваться после этого, пока вы не добавите ссылки на библиотеки (это довольно легко). Вот почему Шаг 1 (резервное копирование) настолько важен.
  • если у вас есть система управления версиями, вы потеряете историю файла.

щелчок правой кнопкой мыши по проекту и выбор "открыть папку в Проводнике Windows" полезно отслеживать, где проект хранится во время выполнения этого процесса.

нажмите Файл - > Создать - >создать проект из существующего проекта

выберите исходный файл, например. Решение 1 и введите новое имя файла решение 2

изменить имя проекта в новом решении 2

при создании веб-сайта в Visual Studio 2010. Имя проекта можно изменить следующим образом.

Шаг 1: в Visual Studio 2010 файл SLN будет храниться в папке проекта в Visual studio 2010, а исходные файлы будут храниться в папке веб-сайта в Visual Studio 2010.

Шаг 2: переименуйте папку, щелкнув правой кнопкой мыши по этой папке вперед, переименовав, которая содержит ваш проект SLN.

Шаг 3: переименуйте имя файла SLN Правой Кнопкой Мыши этот файл SLN переадресовывается переименованием.

Шаг 4: переименуйте папку, содержащую источник этого файла SLN в разделе веб-сайт в Visual Studio 2010.

Шаг 5: затем, наконец, дважды щелкните файл SLN и измените корень исходной папки SLN.

единственное решение, которое работает для меня в Visual Studio 2013 в веб-проекта:

допустим, я хочу переименовать " project1 "в"project2". Скажем, физический путь к моему .файл sln-это: c:\my\path\project1\project1.sln

Итак, путь к моему .файл csproj, а также папка bin и obj должны быть: \c:\my\path\project1\project1

откройте решение в VS, дважды щелкнув project1.ФСЛ файл.

в обозревателе решений щелкните правой кнопкой мыши проект (не решение. ), выберите Переименовать и введите новое имя.

в обозревателе решений щелкните проект правой кнопкой мыши и выберите Свойства. На вкладке приложение измените" имя сборки "и"пространство имен по умолчанию".

в главном файле CS (или любых других файлах кода, таких как Global.asax, например), переименуйте объявление пространства имен, чтобы использовать новое имя. Для этого щелкните правой кнопкой мыши в пространство имен и выберите рефакторинг > переименовать, введите новое имя. Например:

пространство имен project1

4.1 в обозревателе решений щелкните правой кнопкой мыши проект (не решение. ), выберите Переименовать и введите новое имя.

  1. убедитесь: AssemblyTitle и AssemblyProduct в свойствах/AssemblyInfo.cs устанавливаются на новое имя ("project2").

1 [сборка: AssemblyTitle ("новое имя здесь")] Два [собрание: AssemblyDescription("")] Три [сборка: AssemblyConfiguration("")] Четыре [сборка: AssemblyCompany("")] Пять [сборка: AssemblyProduct ("новое имя здесь")] Шесть [сборка: AssemblyCopyright ("Copyright © 2013")] Семь [сборка: AssemblyTrademark("")] Восемь [собрание: AssemblyCulture("")]

закройте Visual Studio.

физически удалите каталоги bin и obj.

переименуйте родительскую папку и исходную папку в новую имя (project2):

в Примере: c:\my\path\project1\project1

переименуйте имя файла SLN, щелкнув правой кнопкой мыши на этом файле SLN вперед, переименовав.

затем, наконец, откройте файл SLN (в блокноте или любом редакторе) и скопируйте и замените (Ctrl+h) любое старое имя на новое имя.

откройте VS и нажмите BUILD - > Clean Solution

нажмите Build - > Build solution, а затем F5 для запуска.

Note1: если вы получаете что-то вроде этого: ошибка компиляции CS0246: не удалось найти тип или имя пространства имен "project2" (отсутствует директива using или ссылка на сборку?)

затем перейдите в раздел "временный ASP.NET файлы" папка и удалить все.

  1. Note2: если вы пытаетесь сделать "Сохранить как" в новый именованный проект и сохранить также старый, подумайте о дублировании вашей БД, изменив connectionStrings в интернете.конфигурации, а также повторного запуска миграций, если у вас в проекте.

Я новичок в VS. У меня была такая же проблема: нужно было переименовать запущенный проект через пару недель работы. Это то, что я сделал и это сработало.

  1. на всякий случай сделайте резервную копию своего проекта папки, хотя вы не будете трогай, но на всякий случай!
  2. создайте новый проект и сохраните его, используя имя, которое вы хотите для своего "нового" проект, что означает имя, которое вы хотите изменить свой "старый" проект.
  3. построить его. После этого у вас будет проект с именем, которое ты хотела, но . что он вообще ничего не делает, но открывает окно (приложение Windows Form в мой случай.)
  4. при открытии нового проекта нажмите Project - >Add Existing Ítem и используйте Проводник Windows найдите свой проект "старой" папки и выберите все файлы под. Visual Studio xxx\проекты\oldApp\oldApp
  5. выберите все файлы (.ВБ .resx) и добавьте их в свой "новый" проект (тот, который должен быть уже открыт).
  6. почти последний шаг будьте, чтобы открыть файл проекта, используя решение
    Explorer и на вкладке 1st измените форму запуска по умолчанию на форму так и должно быть.
  7. восстановить все.

может быть, больше шагов, но меньше или нет ввода вообще, просто некоторые щелчки мыши. Надеяться это помогает :)

Если у вас возникли проблемы с загрузкой общих проектов, таких как Xamarin, не забудьте изменить ссылку на общие библиотеки в файлах csproj. Я разработал игру CocosSharp, и проекты Droid/iOS/WP81 не хотели загружаться. Мне пришлось изменить строку ниже в каждом файле csproj (Driod/iOS/WP81), который ссылался на общий lib. Это было вызвано изменением имен папок, поэтому замените YOUR_PREVIOUS_NAMESPACE новыми именами папок.

также я заметил, что для .Проекты Driod , имя сборки в свойствах проекта нельзя изменить с помощью visual studio (я использую 2015). Мне пришлось изменить имя сборки вручную .Дроид.файл csproj.

затем я загрузил решение и в окне свойств проекта появилось новое имя. После перестройки dll с этим именем была сгенерирована.

затем я использовал ReSharper для настройки пространства имен (щелкните правой кнопкой мыши на project, refactor, adjust namespaces. )

enter image description here

найдите и отредактируйте applicationhost IISExpress.конфиг, нашел здесь: C:\Users\Documents\IISExpress\config

вместе с ответом по этой ссылке

enter image description here

переименовать эти файлы. Я переименовал свой проект в MvcMovie, и он отлично работает

Я хочу изменить название своего решения и название всего проекта.

при изменении всего пространства имен - имена проектов, на которые ссылаются другие проекты (когда я смотрю на ссылки на проекты, ссылочные проекты остаются с тем же именем. Они не были изменены).

Могу ли я сделать это ?

3 ответа

Я тоже боролся с этой проблемой и не нашел автоматизированного способа сделать это. Я должен был сделать это вручную так:

Переименование решения. Самая простая часть. Перейдите в обозреватель решений (из меню «Вид» -> «Обозреватель решений»), выберите решение и нажмите F4 (или из меню - «Просмотр» -> «Окно свойств»), выберите свойство «Имя» и введите новое имя, а затем нажмите клавишу ВВОД. Это не изменит имя папки, в которой находится все решение. Если вы хотите это изменить (а я действительно хотел это сделать), вам нужно закрыть Visual Studio, а затем переименовать эту папку. Если вы снова откроете Visual Studio и откроете решение, просмотрев после нового имени (Файл -> Открыть -> Проект / Решение ..), вы увидите, что новое имя для решения было изменено.

Вот как вы можете попытаться сделать это с проектами:

Щелкните правой кнопкой мыши проект в обозревателе решений, выберите «Переименовать» и введите новое имя.

Снова щелкните правой кнопкой мыши по проекту и выберите «Свойства». Измените «Имя сборки» и «Пространство имен по умолчанию» на вкладке «Приложение».

Когда у вас установлен ReSharper, снова щелкните проект правой кнопкой мыши и выберите Refactor -> Adjust Namespaces. Примите изменения.

Измените AssemblyTitle и AssemblyProduct в Свойствах / AssemblyInfo.cs

Удалить каталоги bin и obj в проводнике Windows

Откройте файл SLN (с помощью текстового редактора, такого как Notepad ++) и измените путь к проекту (должно быть несколько мест).

Откройте решение снова. Очистить и восстановить проект.

Чтобы переименовать решение

  1. В Visual Studio Solution Explorer щелкните правой кнопкой мыши узел решения и выберите «Переименовать» в контекстном меню.
  2. Введите новое имя для вашего решения.

Чтобы переименовать проект

В Visual Studio Solution Explorer щелкните правой кнопкой мыши узел проекта и затем выберите Rename из контекстного меню.

Введите новое имя для вашего решения.

Чтобы изменить пространство имен по умолчанию : перейдите в Проект-> Свойства-> Пространство имен по умолчанию и введите желаемое имя.

Чтобы изменить пространства имен старых файлов , перейдите по этой публикации stackoverflow

Заменить в файлах (Ctrl + Shift + H) заменит старое пространство имен новым!

Чтобы обновить ссылки : вам нужно снова добавить ссылки, я не думаю, что есть более простой способ. Помимо удаления и добавления ссылок довольно просто

Рубрики

Свежие записи

Свежие комментарии

Архивы

Задача: полностью переименовать решение Visual Studio, включая каталоги проекта и решения, название исполняемого файла и пространство имен. Решение несколько неочевидно, пройдем по шагам:

  1. Делаем резервную копию папки с решением.
  2. Решение и проект переименовываем в студии
  3. Имя исполняемого .exe файла изменяем в свойствах проекта - поле Assembly name
  4. Для переименования пространства имен используем встроенную функцию рефакторинга - выделяем в одном из файлов название и в контекстном меню выбираем Refactor->Rename

Комментарии

Спасибо! Было полезно!:)

Огромное спасибо, кроме пользы ваша статься принесла мне душевное облегчение и вернула веру в присутствие интеллекта.

Написал свою первую консольную программу (очень нужную) с дефолтным именем. Теперь решил написать другую - ну и не называть же её номером 2 ))

Хочу дополнить 6й пункт решением со StackOverflow по Вашей же ссылке: в Visual Studio Express 2012 путь к файлу недоступен для переименования. Следует найти в файловой системе проекта файл *.sln и изменить путь в нём с помощью текстового редактора. затем перезагрузить проект.

Ещё раз спасибо.

После переименования проекта выводятся следующие выходные данные:
"vi.vshost.exe" (Управляемый (v4.0.30319)): Загружен "C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_ru_b77a5c561934e089\mscorlib.resources.dll"
Поток 'vshost.RunParkingWindow' (0x240c) завершился с кодом 0 (0x0).
Поток '' (0x223c) завершился с кодом 0 (0x0).
Программа "[22360] vi.vshost.exe: Управляемый (v4.0.30319)" завершилась с кодом 0 (0x0).

Что пошло не так?

Спасибо, очень помогло. Хочу дополнить. Если в решении было несколько проектов, то 7 пунктом необходимо поменять ссылки на переименованные проекты.

First of all I would like to say fantastic blog!
I had a quick question in which I'd like to ask if you don't mind.
I was interested to know how you center yourself and clear your head before writing.
I have had a hard time clearing my mind in getting my ideas out.
I truly do take pleasure in writing however it just seems like the first 10
to 15 minutes are generally wasted just trying to figure out how to begin. Any ideas or tips?

Форма является основным компонентом графического интерфейса программы. Именно на ней размещаются управляющие интерфейсы.

Рассмотрим некоторые из свойств формы, которые влияют на её внешний вид.

Объявляем форму

Для того что бы объявить форму, нам надо добавить библиотеку System.Windows.Forms.dll

После объявляем форму $main_form

Отобразим форму $main_form.

В результате получилась вот такая форма:

DefaultForm

Что бы в загаловке формы отобразить текст нужно присвоить его свойству Text нашей формы:

Текст отобразится в заголовке:

DefaultFormTextHello

Изменение размера формы:

Давайте изменим размер формы.

Это можно сделать через свойства Width(ширина) и Height(высота) формы, где значения параметров это кол-во пикселей.

Этого же результата можно добиться используя параметр формы Size:

$main_form . Size = New-object System . Drawing . Size ( 300 , 500 )

Так же можно задать размер с помощью параметра DesktopBounds:

$main_form . DesktopBounds = New-object System . Drawing . Rectangle ( 0 , 0 , 300 , 500 )

Так же для изменения размеров можно воспользоваться свойством ClientSize

$main_form . ClientSize = New-object System . Drawing . Size ( 300 , 500 )

Однако этот параметр задаёт клиентскую область формы, которая по размерам меньше самой формы. Поэтом получившаяся форма, по размерам окажется больше, чем в предыдущих примерах.

Однако данные свойства не ограничивают размер формы в период жизни программы, пользователь может изменить размер формы или распахнуть её на весь экран, что может существенно сказаться на внешнем виде формы. Поэтому иногда форму приходится ограничить возможность сжимать и/или растягивать форму.

Для этогу существуют такие параметры , как MinimumSize(минимальный размер формы) и MaximumSize (максимальный размер формы). Если задать эти параметры, то в период жизни форма не сможет за них выйти.

Пример объявления данных свойств:

Но вычислять область окна бывает довольно сложно, удобнее всего отдать эту задачу автоматическим средствам управления окнами.

Для этого с начала надо разрешить менять размер формы, в зависимости от расположения объектов в области видимости свойством AutoSize перевести его в значение true

После надо выбрать режим автоматического подбора размера формы и указать его в свойстве AutoSizeMode. Существует два режима этого свойства GrowOnly и GrowAndShrink:

$main_form . AutoSizeMode = [ System . Windows . Forms . AutoSizeMode ] : : GrowOnly $main_form . AutoSizeMode = [ System . Windows . Forms . AutoSizeMode ] : : GrowAndShrink

Шрифты

Так же не малую роль в отображении формы влияют шрифты. К тому же настройки шрифтов наследуются на управляющие элементы принадлежащие этой форме.

Настройки шрифта хранятся в свойстве формы Font данное свойство наследуется другим упавляющим компонентам на форме. Изменять свойства Font по отдельности нельзя, но можно переопределить его польностью следующим образом:

$main_form . Font = New-Object System . Drawing . Font ( "Calibri" , 24 )

Что бы поменять цвет шрифта существует следующее свойство ForeColor:

Не малуюроль в определении размеров управляющих элементов играет размер шрифта его можно узнать из свойства AutoScaleBaseSize, его так же можно перераспределить.

Шаблон окна

Шаблон окна формы опредиляется парметром FormBorderStyle, который может принимать семь значений Fixed3D, FixedDialog, FixedSingle, FixedToolWindow, None, Sizabl, SizableToolWindow по умолчанию стоит значение Sizable. Заметим, что внешний вид формы на примерах может существенно отличаться на разных компьютерах и существенно зависит от OC. Так же после назначения определённого шаблона окна в дальнейшем его можно будет редактировать другими свойствами формы.

Рассмотрим шаблоны формы:

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : Fixed3D

FormBorderStyleFixed3D

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : FixedDialog

FormBorderStyleFixedDialog

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : FixedSingle

FormBorderStyleFixedSingle

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : FixedToolWindow

FormBorderStyleFixedToolWindow

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : None

FormBorderStyleNone

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : Sizable

FormBorderStyleSizable

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : SizableToolWindow

FormBorderStyleSizableToolWindow

Управляющие кнопки

Для управления отображения управляющими кнопками используются следующие свойства ControlBox, MaximizeBox и MinimizeBox.

Свойство ControlBox управляет видимостью всей областью управляющих кнопок. По умолчанию она находиться в состоянии true.

DefaultFormTextHello

Зададим данному свойству значение false

FormControlBoxFalse

Если в форме свойству Text присвоить пустое значение, то шапка формы совсем исчезнет.

Вот так будет выглядеть форма:

FormNotTitle

Включим назад ControlBox и рассмотрим следующие свойства: MaximizeBox и MinimizeBox. Они тоже булевые и служат для того, что бы выключать кнопки развернуть окно и свернуть окно. По умолчанию они имеют свойство true. Рассмотрим как выглядит их выключение:

FormMaximizeBoxFalse

FormMinimizeBoxFalse

Однако, если выключить и MaximizeBox и MinimizeBox кнопки перестают быть видимыми:

FormMaximizeBoxMinimizeBoxFalse

Заметим так же, что отключение кнопок по одиночке или одновременно влияет не только на отображение этих кнопок и возможностями их использовать, но так же и на свойство формы. Так на форме с выключенным свойством MaximizeBox пользователю отключаются все стандартные возможности распахнуть форму на весь экран. Так же дела обстоят и с MinimizeBox.

Иконка.

Иконка отображаемая в левом верхнем углу формы, а так же отображаемая в панели задач может определить через свойство формы Icon например вот так:

$main_form . Icon = New-Object System . Drawing . Icon ( "d:\favicon.ico" )

Если же мы не хотим, что бы иконка отображалась, то её можно скрыть, с помощью свойства ShowIcon установив его в состояние false. Если же шаблон окна не подразумевает наличия иконки, её так же можно включить через это свойство установи параметр truе

Элемент захвата

Для того, чтобы задать видимость захвата для изменения размера, отображаемого в правом нижнем углу формы. Нужно воспользоваться свойством SizeGripStyle. Оно имеет 3 значенич Auto, Hide, Show

Данное значение стоит по умолчанию. Форма сама решает отображать этот элемент или нет.

Элемент будет скрыт с формы.

$main_form . SizeGripStyle = [ System . Windows . Forms . SizeGripStyle ] : : Hide

FormSizeGripStyleHide

элемент отображается на форме

$main_form . SizeGripStyle = [ System . Windows . Forms . SizeGripStyle ] : : Show

FormSizeGripStyleShow

Цвет и прозрачность.

Что бы задасть цвет формы нужно воспользоваться свойством BackColor, этот параметр будет наследоваться размещённым на данной форме управляющим элементам. Сделаем цвет рабочей области, например синим:

FormBackColor

$main_form . BackgroundImage = [ System . Drawing . Image ] : : FromFile ( "d:\favicon.jpg" )

FormBackgroundImage

А в свойстве TransparencyKey формы мы должны указать, какой цвет будет заменяться на прозрачный.

Эти параметры прозрачности будут так же наследоваться на управляющие элементы формы.

FormTransparencyKey

Это свойство можно использовать для рисования не стандартных окон убрав перед этим рамку формы

$main_form . FormBorderStyle = [ System . Windows . Forms . FormBorderStyle ] : : None

Если же мы не хотим делать дырки в форме, а всеволишь сделать её слегка прозрачной, мы можем воспользоваться свойством Opacity, значения в ней колеблятся от 0 это полностью прозрачная до 1, не прозрачная.

FormOpacity

Курсор

Для изменения вида курсора в приложении можно воспользоваться свойством формы Cursor:

$main_form . Cursor = New-Object System . Windows . Forms . Cursor ( "d:\Cursor.cur" )

Так же можно узнать перехватывается ли курсор приложением в даннй момент, для этого нужно посмотреть данные свойства формы Capture

Что бы уведомить пользователя о текущем процессе, можно так же включить курсор ожидания указав в свойстве UseWaitCursor значение true

Состояние окна.

Что бы узнать в каком состоянии находиться окно или изменить его, можно воспользоваться свойством формы WindowState оно принимает три значения Maximized, Minimized, Normal.

Что бы развернуть окно:

$main_form . WindowState = [ System . Windows . Forms . FormWindowState ] : : Maximized

Свернуть в панель задач:

Перевести в обычный(свободный) режим:

$main_form . WindowState = [ System . Windows . Forms . FormWindowState ] : : Normal

Зеркальный вид окна

Так же есть возможность показать зеркальную форму обычно это используют для приложений в которых ввод текста происходит с права на лево.

Для этого нам нужно сначала включить поддержку ввода текста с права на лево свойством формы RightToLeft

$main_form . RightToLeft = [ System . Windows . Forms . RightToLeft ] : : YES

Только после этого можно отобразить форму зеркально установив свойство формы RightToLeftLayout в значение true

FormMirrored

Посмотреть отображается ли форма в зеркальном виде можно из свойства формы IsMirrored.

Отображение в Панели задач.

Видимость окна.

Так же если надо сделать, что бы форма не закрывалась другими окнами можно воспользоваться свойством TopMost. Если установить его в значение true то другие окна не смогут заслонить его.

Для формы существуют параметры видимости, но для отображения формы лучше пользоваться функция Enabled если установить его в значение false, то его не удасться отобразить методом ShowDialog().

Так же если надо скрыть форму, то это можно сделать изменив свойство Visible на false. Можно так же отобразить форму, но это может быть не всегда хорошей идеей, лучше пользоваться методом ShowDialog.

Комментарии:

Комментарии 12

Огромное спасибо за подробный разбор!
Очень сильно помогло в пониманиии концепции построения GUI для повершела =)

Приятно осознавать, что мой блог помогает людям. 🙂

Читайте также: