Перейти к содержимому

Show c что это

  • автор:

Show c что это

Как правило, для вывода сообщений применяется элемент MessageBox. Однако кроме сообственно вывода строки сообщения данный элемент может устанавливать ряд настроек, которые определяют его поведение.

Для вывода сообщения в классе MessageBox предусмотрен метод Show , который имеет различные версии и может принимать ряд параметров. Рассмотрим одну из наиболее используемых версий:

public static DialogResult Show( string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options )

Здесь применяются следующие параметры:

text : текст сообщения

caption : текст заголовка окна сообщения

buttons : кнопки, используемые в окне сообщения. Принимает одно из значений перечисления MessageBoxButtons :

  • AbortRetryIgnore : три кнопки Abort (Отмена), Retry (Повтор), Ignore (Пропустить)
  • OK : одна кнопка OK
  • OKCancel : две кнопки OK и Cancel (Отмена)
  • RetryCancel : две кнопки Retry (Повтор) и Cancel (Отмена)
  • YesNo : две кнопки Yes и No
  • YesNoCancel : три кнопки Yes, No и Cancel (Отмена)

Таким образом, в зависимости от выбора окно сообщения может иметь от одной до трех кнопок.

icon : значок окна сообщения. Может принимать одно из следующих значений перечисления MessageBoxIcon :

  • Asterisk, Information : значок, состоящий из буквы i в нижнем регистре, помещенной в кружок
  • Error, Hand, Stop : значок, состоящий из белого знака «X» на круге красного цвета.
  • Exclamation, Warning : значок, состоящий из восклицательного знака в желтом треугольнике
  • Question : значок, состоящий из вопросительного знака на периметре круга
  • None : значок у сообщения отсутствует

defaultButton : кнопка, на которую по умолчанию устанавливается фокус. Принимает одно из значений перечисления MessageBoxDefaultButton :

  • Button1 : первая кнопка из тех, которые задаются перечислением MessageBoxButtons
  • Button2 : вторая кнопка
  • Button3 : третья кнопка

options : параметры окна сообщения. Принимает одно из значений перечисления MessageBoxOptions :

  • DefaultDesktopOnly : окно сообщения отображается на активном рабочем столе.
  • RightAlign : текст окна сообщения выравнивается по правому краю
  • RtlReading : все элементы окна располагаются в обратном порядке справа налево
  • ServiceNotification : окно сообщения отображается на активном рабочем столе, даже если в системе не зарегистрирован ни один пользователь

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

private void button1_Click(object sender, EventArgs e)

MessageBox в Windows Forms

Однако нам не просто дается возможность установки кнопок в окне сообщения. Метод MessageBox.Show возвращает объект DialogResult , с помощью которого мы можем узнать, какую кнопку в окне сообщения нажал пользователь. DialogResult представляет перечисление, в котором определены следующие значения:

  • Abort : нажата кнопка Abort
  • Retry : нажата кнопка Retry
  • Ignore : нажата кнопка Ignore
  • OK : нажата кнопка OK
  • Cancel : нажата кнопка Cancel
  • None : отсутствие результата
  • Yes : нажата кнопка Yes и No
  • No : нажата кнопка No

Используем обработку выбора пользователя, изменив обработчик нажатия кнопки следующим образом:

private void button1_Click(object sender, EventArgs e)

И теперь, если в окне сообщения мы выберем выриант Yes, то кнопка окрасится в красный цвет.

Show c что это

Окна — основные интерфейса GUI-программы Visual Studio. Чтобы создать и отобразить окна, используют экземпляры (переменные) класса Form, и методы Show() и ShowDialog(). В статье рассматривается применение этих методов.

[Обычные окна, использование Show]

Show отображает обычное окно, а ShowDialog — модальное. В программу можно добавить произвольное количество форм (окон), все они будут действовать независимо, если отображены методом Show. Добавляется новое окно так: меню Проект -> Добавить форму Windows. -> Форма Windows Forms -> OK. По умолчанию будет добавлена форма Form2. Далее в модуле Program.cs добавьте код для отображения второй формы:

. static void Main() < Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form2 frm = new Form2(); 
frm.Show();
Application.Run(new Form1()); > .

После запуска программы отобразятся сразу две формы, Form1 и Form2.

Чтобы можно было вызывать из Form1 подпрограммы и функции (методы) из Form2 (и наоборот), то необходимо инициализировать и запускать формы немного по-другому (код из Program.cs):

namespace MyApp < static class Program < static public Form1 frm1; static public Form2 frm2; /// /// Главная точка входа для приложения. /// [STAThread] static void Main() < Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); frm1 = new Form1(); frm2 = new Form2(); frm2.Show(); Application.Run(frm1); > > >

Пример вызова из класса Form2 (процедура Form2_FormClosed) метода класса Form1 (процедуру Close):

private void Form2_FormClosed(object sender, FormClosedEventArgs e) < Program.frm1.Close(); >

[Модальные окна, использование ShowDialog]

Модальное окно должно блокировать другие окна, пока не будет закрыто модальное окно. Обычно модальное окно используется для диалогов настройки, а также для фокусирования внимания пользователя на каком-то событии. В приложении в любое время может быть активно и доступно для пользователя только одно модальное окно. Часто диалог About тоже запускают как модальное окно.

Любую обычную форму можно запустить как модальное окно, если вместо Show() использовать ShowDialog(). Пример запуска диалогового (модального) окна настройки, вызываемого из меню:

private void SetupStripMenuItem_Click(object sender, EventArgs e) < //Program.form2.Show(); Program.form2.ShowDialog(); >

[Важные отличия Show от ShowDialog]

1. Show() запускает отображение обычного окна, а ShowDialog() отображает модальное окно. Отличия обычного окна от модального известны — обычное окно равноправно со всеми окнами приложения, а модальное окно блокирует все остальные окна приложения, пока не будет закрыто это модальное окно.

2. Если после вызова Show() пользователь закроет вызванное окно, то повторно вызвать Show() не получится, так как объект окна будет уничтожен, и его надо будет создавать заново. Т. е. Использование Show() всегда должно быть по такой схеме: создание экземпляра класса окна (), Show(), закрытие окна. При каждом вызове Show() экземпляр класса окна нужно создавать заново в коде приложения.

3. ShowDialog() работает по другому: после закрытия пользователем окна (в отличие от Show()) экземпляр класса окна не будет уничтожен, поэтому не нужно перед каждым новым вызовом ShowDialog создавать экземпляр класса. Этот экземпляр класса может быть создан только один раз при старте приложения (например, в функции Main модуля Program.cs).

4. Свойства модального окна нужно менять в самом классе этого окна, а не из классов других окон, так как действие кода из другого класса не будет производить никакого эффекта на модальное окно. Например, поменять свойства Top и Left модального окна, влияющие на его положение, из модулей других окон не получится.

[Ссылки]

10 самых популярных команд Cisco IOS

Поскольку операционная система Cisco IOS очень мощная и гибкая, её конфигурирование может стать достаточно трудоёмким процессом, поэтому знать основные команды крайне необходимо. В этой статье мы рассмотрим 10 основных команд, которые могут пригодиться во время выполнения настройки или диагностики устройств.

10 команд, которые должен знать каждый пользователь Cisco IOS

№1: “?”

На первый взгляд использование ? для вызова помощи кажется достаточно простым. Однако Cisco IOS кардинально отличается от других операционных систем в плане использования команды помощи. Поскольку Cisco IOS – это операционная система с командным интерфейсом, существуют тысячи команд для настройки и управления, а использование ? поможет сэкономить немало времени.

Эту команду можно применять различными способами. Во-первых, используйте ?, если не знаете какую команду написать. Например, вы можете написать ? в командной строке для вывода всех возможных команд.

Также можно использовать ?, если вы не знаете аргумент какой-либо команды. Например, можно ввести show ip ? Если команде не нужно никаких аргументов, роутер предложит только CR (возврат каретки).

Наконец, можно использовать? для просмотра всех команд, начинающихся с определённой буквы. Например, show c? покажет все команды, начинающиеся с буквы c.

2: show running-configuration

Команда show runningconfig показывает текущую конфигурацию устройства. Running-configuration – это конфигурация, загруженная в данный момент в оперативную память роутера. Когда вы вносите изменения в оборудование, как раз эта конфигурация изменяется.

Важно помнить, что конфигурация не сохраняется пока не выполнить copy runningconfiguration startupconfiguration. Команду show running-config можно сокращать до sh run.

№3: copy running-configuration startup-configuration

Эта команда сохранит текущие модификации в настройках (running-configuration, которая хранится в RAM), в энергонезависимую RAM (NVRAM). Если внезапно исчезнет электропитание, то данные в NVRAM сохранятся. Другими словами, если вы внесёте изменения в конфигурацию роутера или перезагрузите его, не используя перед этим данную команду, то все изменения будут утеряны. Команду можно сократить до copy run start.

Команда copy также используется для копирования текущей или стартовой конфигурации на TFTP-сервер.

4: show interface

Команда show interface отображает состояние интерфейсов маршрутизатора. Вот некоторые выводимые параметры:

Эта команда играет важную роль для диагностики роутера или свитча. Её также можно использовать с указанием конкретного интерфейса, например, sh int fa0/0.

№5: show ip interface

Более распространёнными, чем show interface являются команды show ip interface и show ip interface brief. Команда show ip interface предоставляет огромное количество информации о конфигурации и состоянии протокола IP и его службах на всех интерфейсах. Команда show ip interface brief даёт краткий обзор интерфейсов, включая IP-адрес, статусы Layer 2 и Layer 3.

№6: config terminal, enable, interface, and router

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

Когда вы авторизуетесь на роутере (SSH, Telnet, Console), сначала вы попадаете в user mode (пользовательский режим, где приглашение выглядит как >). В этом режиме можно написать enable для переключения в привилегированный режим (приглашение выглядит как #). В привилегированном режиме отображается любая информация, но нельзя вносить никакие изменения. Для того, чтобы попасть в режим глобальной конфигурации введите config terminal (или config t), приглашение станет выглядеть как (config)# . В этом режиме можно изменять любые настройки. Для изменения параметра интерфейса (например, IP-адреса) переключитесь в режим конфигурирования командой interface (приглашение выглядит как (config-if)#). Помимо этого, из режима глобальной конфигурации вы можете попасть в режим конфигурации роутера с помощью команды router protocol>. Для выхода из любого режима введите exit.

№7: no shutdown

Команда no shutdown включает интерфейс. Она используется в режиме конфигурации интерфейса. Может быть полезна при диагностике или конфигурации новых интерфейсов. Если с каким-либо интерфейсом возникла проблема, можно попробовать ввести shut и no shut. Разумеется, для того, чтобы выключить интерфейс введите shutdown. Команду можно сократить до no shut.

№8: show ip route

Команда show ip route выводит таблицу маршрутизации роутера. Она состоит из списка всех сетей, которые доступны роутеру, их метрике (приоритет маршрутов) и шлюза. Команду можно сократить до sh ip ro. Также после неё могут быть параметры, например sh ip ro ospf (показывает всю маршрутизацию OSPF).

Для очистки всей таблицы маршрутизации необходимо выполнить clear ip route *. Для удаления конкретного маршрута необходимо указать адрес сети после команды, например clear ip route 1.1.1.1.

№9: show version

Команда show version показывает регистр конфигурации (в основном настройки загрузки маршрутизатора), когда последний раз роутер загружался, версию IOS, имя файла IOS, модель устройства, а также количество оперативной и флэш-памяти. Команду можно сократить до sh ver.

№10: debug

У команды debug есть много параметров, и она не работает без них. Эта команда предоставляет детальную отладочную информацию по конкретному приложению, протоколу или службе. Например, debug ip route будет сообщать вам каждый раз, когда маршрут добавляется или удаляется из роутера.

2.6 Основы Git — Работа с тегами

Как и большинство других систем контроля версий, Git имеет возможность помечать определённые моменты в истории как важные. Как правило, эта функциональность используется для отметки моментов выпуска версий (v1.0, и т. п.). Такие пометки в Git называются тегами. В этом разделе вы узнаете, как посмотреть имеющиеся теги, как создать новые или удалить существующие, а также какие типы тегов существуют в Git.

Просмотр списка тегов

Просмотреть список имеющихся тегов в Git можно очень просто. Достаточно набрать команду git tag (параметры -l и —list опциональны):

$ git tag v1.0 v2.0

Данная команда перечисляет теги в алфавитном порядке; порядок их отображения не имеет существенного значения.

Так же можно выполнить поиск тега по шаблону. Например, репозиторий Git содержит более 500 тегов. Если вы хотите посмотреть теги выпусков 1.8.5, то выполните следующую команду:

$ git tag -l "v1.8.5*" v1.8.5 v1.8.5-rc0 v1.8.5-rc1 v1.8.5-rc2 v1.8.5-rc3 v1.8.5.1 v1.8.5.2 v1.8.5.3 v1.8.5.4 v1.8.5.5

Примечание
Для отображение тегов согласно шаблону требуются параметры -l или —list

Если вы хотите посмотреть весь список тегов, запуск команды git tag неявно подразумевает это и выводит полный список; использование параметров -l или —list в этом случае опционально.

Если вы хотите отфильтровать список тегов согласно шаблону, использование параметров -l или —list становится обязательным.

Создание тегов

Git использует два основных типа тегов: легковесные и аннотированные.

Легковесный тег — это что-то очень похожее на ветку, которая не изменяется — просто указатель на определённый коммит.

А вот аннотированные теги хранятся в базе данных Git как полноценные объекты. Они имеют контрольную сумму, содержат имя автора, его e-mail и дату создания, имеют комментарий и могут быть подписаны и проверены с помощью GNU Privacy Guard (GPG). Обычно рекомендуется создавать аннотированные теги, чтобы иметь всю перечисленную информацию; но если вы хотите сделать временную метку или по какой-то причине не хотите сохранять остальную информацию, то для этого годятся и легковесные.

Аннотированные теги

Создание аннотированного тега в Git выполняется легко. Самый простой способ — это указать -a при выполнении команды tag :

$ git tag -a v1.4 -m "my version 1.4" $ git tag v0.1 v1.3 v1.4

Опция -m задаёт сообщение, которое будет храниться вместе с тегом. Если не указать сообщение, то Git запустит редактор, чтобы вы смогли его ввести.

С помощью команды git show вы можете посмотреть данные тега вместе с коммитом:

$ git show v1.4 tag v1.4 Tagger: Ben Straub Date: Sat May 3 20:19:12 2014 -0700 my version 1.4 commit ca82a6dff817ec66f44342007202690a93763949 Author: Scott Chacon Date: Mon Mar 17 21:52:11 2008 -0700 Change version number

Здесь приведена информация об авторе тега, дате его создания и аннотирующее сообщение перед информацией о коммите.

Легковесные теги

Легковесный тег — это ещё один способ пометить коммит. По сути, это контрольная сумма коммита, сохранённая в файл — больше никакой информации не хранится. Для создания легковесного тега не передавайте опций -a , -s и -m , укажите только название:

$ git tag v1.4-lw $ git tag v0.1 v1.3 v1.4 v1.4-lw v1.5

На этот раз при выполнении git show для этого тега вы не увидите дополнительной информации. Команда просто покажет коммит:

$ git show v1.4-lw commit ca82a6dff817ec66f44342007202690a93763949 Author: Scott Chacon Date: Mon Mar 17 21:52:11 2008 -0700 Change version number

Отложенная расстановка тегов

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

$ git log --pretty=oneline 15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment' a6b4c97498bd301d84096da251c98a07c7723e65 Create write support 0d52aaab4479697da7686c15f77a3d64d9165190 One more thing 6d52a271eda8725415634dd79daabbc4d9b6008e Merge branch 'experiment' 0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc Add commit function 4682c3261057305bdd616e23b64b0857d832627b Add todo file 166ae0c4d3f420721acbb115cc33848dfcc2121a Create write support 9fceb02d0ae598e95dc970b74767f19372d61af8 Update rakefile 964f16d36dfccde844893cac5b347e7b3d44abbc Commit the todo 8a5cbc430f1a9c3d00faaeffd07798508422908a Update readme

Теперь предположим, что вы забыли отметить версию проекта v1.2, которая была там, где находится коммит «Update rakefile». Вы можете добавить тег и позже. Для отметки коммита укажите его контрольную сумму (или её часть) как параметр команды:

$ git tag -a v1.2 9fceb02

Проверим, что коммит отмечен:

$ git tag v0.1 v1.2 v1.3 v1.4 v1.4-lw v1.5 $ git show v1.2 tag v1.2 Tagger: Scott Chacon Date: Mon Feb 9 15:32:16 2009 -0800 version 1.2 commit 9fceb02d0ae598e95dc970b74767f19372d61af8 Author: Magnus Chacon Date: Sun Apr 27 20:43:35 2008 -0700 Update rakefile . 

Обмен тегами

По умолчанию, команда git push не отправляет теги на удалённые сервера. После создания теги нужно отправлять явно на удалённый сервер. Процесс аналогичен отправке веток — достаточно выполнить команду git push origin .

$ git push origin v1.5 Counting objects: 14, done. Delta compression using up to 8 threads. Compressing objects: 100% (12/12), done. Writing objects: 100% (14/14), 2.05 KiB | 0 bytes/s, done. Total 14 (delta 3), reused 0 (delta 0) To git@github.com:schacon/simplegit.git * [new tag] v1.5 -> v1.5

Если у вас много тегов, и вам хотелось бы отправить все за один раз, то можно использовать опцию —tags для команды git push . В таком случае все ваши теги отправятся на удалённый сервер (если только их уже там нет).

$ git push origin --tags Counting objects: 1, done. Writing objects: 100% (1/1), 160 bytes | 0 bytes/s, done. Total 1 (delta 0), reused 0 (delta 0) To git@github.com:schacon/simplegit.git * [new tag] v1.4 -> v1.4 * [new tag] v1.4-lw -> v1.4-lw

Теперь, если кто-то клонирует (clone) или выполнит git pull из вашего репозитория, то он получит вдобавок к остальному и ваши метки.

Примечание
git push отправляет оба типа тегов

Отправка тегов командой git push —tags не различает аннотированные и легковесные теги. В настоящее время не существует опции чтобы отправить только лёгковесные теги, но если использовать команду git push —follow-tags , то отправятся только аннотированные теги.

Удаление тегов

Для удаления тега в локальном репозитории достаточно выполнить команду git tag -d . Например, удалить созданный ранее легковесный тег можно следующим образом:

$ git tag -d v1.4-lw Deleted tag 'v1.4-lw' (was e7d5add)

Обратите внимание, что при удалении тега не происходит его удаления с внешних серверов. Существует два способа изъятия тега из внешнего репозитория.

Первый способ — это выполнить команду git push :refs/tags/ :

$ git push origin :refs/tags/v1.4-lw To /git@github.com:schacon/simplegit.git - [deleted] v1.4-lw

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

Второй способ убрать тег из внешнего репозитория более интуитивный:

$ git push origin --delete

Переход на тег

Если вы хотите получить версии файлов, на которые указывает тег, то вы можете сделать git checkout для тега. Однако, это переведёт репозиторий в состояние «detached HEAD», которое имеет ряд неприятных побочных эффектов.

$ git checkout v2.0.0 Note: switching to 'v2.0.0'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 99ada87. Merge pull request #89 from schacon/appendix-final $ git checkout v2.0-beta-0.1 Previous HEAD position was 99ada87. Merge pull request #89 from schacon/appendix-final HEAD is now at df3f601. Add atlas.json and cover image

Если в состоянии «detached HEAD» внести изменения и сделать коммит, то тег не изменится, при этом новый коммит не будет относиться ни к какой из веток, а доступ к нему можно будет получить только по его хешу. Поэтому, если вам нужно внести изменения — исправить ошибку в одной из старых версий — скорее всего вам следует создать ветку:

$ git checkout -b version2 v2.0.0 Switched to a new branch 'version2'

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

Добавить комментарий

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