Как добавить кнопку в visual studio
Короче, суть в чем, я создаю кнопки на динамической форме и хочу чтобы у каждой кнопки было све нажатие или что-нибудь такое, по которому я смогу проверить какая кнопка была нажата и сохранить его, после нажатия другой уже кнопки сравнить их текст если они будут совпадать то обе кнопки убрать с формы.
заместо button_1 нужно сделать например button_2,button_3 и т.д. кнопок очень много.
60 1 1 золотой знак 1 1 серебряный знак 9 9 бронзовых знаков Все кнопки можно подписывать на один и тот же обработчик события. В обработчик приходить параметром sender , приводите его к типу Button и либо по названию, либо по тегу вы сможете определить от какой кнопки пришло событие. а по тегу это как ? Вот например я нажатую кнопку пихаю в массив кнопок,наращиваю значение флага,и так по очереди,и проверяю последнюю с предпоследним (ничего не выходит), потом при попытке оттуда достать и что-либо сделать но пишет System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта." ?К примеру у нас есть такой код, который добавляет на нашу форму 10 кнопок:
Как мы можем узнать кнопку? Для этого нужен какой либо идентификатор, возьмем к примеру имя, пусть оно будет btn . Добавим после строки button.Top = top; еще одну строку button.Name = "btn" + i; .
Далее, как нам отследить нажатие? Для этого нужно подписаться на событие. Стандартный вариант - Click - событие, которое происходит при клике мышью по объекту. Для всех наших кнопок достаточно всего одного обработчика событий! Давайте добавим еще одну строку в свойство кнопки - button.Click += ButtonOnClick; .
Хорошо, с генерацией покончили, теперь наш код выглядит так:
Но! Мы не добавили то, что будет выполнятся при нажатие на кнопку, давайте напишем:
Хорошо, ошибок нет, должно все работать. Но, нужно ведь наделить каким то функционалом наши кнопки. Давайте в ButtonOnClick добавим определение нажатой кнопки и ее удаление:
Давайте по порядку:
Чтож, вроде все разложил "по полочкам" как мог, с этой частью думаю трудностей не возникнет. Удачи!
как мне определить не ту кнопку которую сейчас нажали, а ту, которая была нажата до нее.
Создадим где нибудь приватный объект Button , который будет хранить информацию о последней нажатой кнопке:
Далее, к примеру, при нажатие 2 раза на кнопку, сделаем так, что бы она удалялась. Для этого перепишем наше событие ButtonOnClick :
Элементы управления представляют собой визуальные классы, которые получают введенные пользователем данные и могут инициировать различные события. Все элементы управления наследуются от класса Control и поэтому имеют ряд общих свойств:
Anchor : Определяет, как элемент будет растягиваться
BackColor : Определяет фоновый цвет элемента
BackgroundImage : Определяет фоновое изображение элемента
ContextMenu : Контекстное меню, которое открывается при нажатии на элемент правой кнопкой мыши. Задается с помощью элемента ContextMenu
Cursor : Представляет, как будет отображаться курсор мыши при наведении на элемент
Dock : Задает расположение элемента на форме
Enabled : Определяет, будет ли доступен элемент для использования. Если это свойство имеет значение False, то элемент блокируется.
Font : Устанавливает шрифт текста для элемента
ForeColor : Определяет цвет шрифта
Location : Определяет координаты верхнего левого угла элемента управления
Name : Имя элемента управления
Size : Определяет размер элемента
Width : ширина элемента
Height : высота элемента
TabIndex : Определяет порядок обхода элемента по нажатию на клавишу Tab
Tag : Позволяет сохранять значение, ассоциированное с этим элементом управления
Кнопка
Наиболее часто используемым элементом управления является кнопка. Обрабатывая событие нажатия кнопки, мы может производить те или иные действия.
При нажатии на кнопку на форме в редакторе Visual Studio мы по умолчанию попадаем в код обработчика события Click , который будет выполняться при нажатии:
Оформление кнопки
Чтобы управлять внешним отображением кнопки, можно использовать свойство FlatStyle. Оно может принимать следующие значения:
Flat - Кнопка имеет плоский вид
Popup - Кнопка приобретает объемный вид при наведении на нее указателя, в иных случаях она имеет плоский вид
Standard - Кнопка имеет объемный вид (используется по умолчанию)
System - Вид кнопки зависит от операционной системы
Изображение на кнопке
Как и для многих элементов управления, для кнопки можно задавать изображение с помощью свойства BackgroundImage. Однако мы можем также управлять размещением текста и изображения на кнопки. Для этого надо использовать свойство TextImageRelation . Оно приобретает следующие значения:
Overlay : текст накладывается на изображение
ImageAboveText : изображение располагается над текстом
TextAboveImage : текст располагается над изображением
ImageBeforeText : изображение располагается перед текстом
TextBeforeImage : текст располагается перед изображением
Например, установим для кнопки изображение. Для этого выберем кнопку и в окне Свойств нажмем на поле Image (не путать с BackgroundImage). Нам откроется диалоговое окно установи изображения:
В этом окне выберем опцию Local Resource и нажмем на кнопку Import , после чего нам откроется диалоговое окно для выбора файла изображения.
После выбора изображения мы можем установить свойство ImageAlign , которое управляет позиционированием изображения на кнопке:
Нам доступны 9 вариантов, с помощью которых мы можем прикрепить изображение к определенной стороне кнопки. Оставим здесь значение по умолчанию - MiddleCenter , то есть позиционирование по центру.
Затем перейдем к свойству TextImageRelation и установим для него значение ImageBeforeText . В итоге мы получим кнопку, где сразу после изображения идет надпись на кнопке:
Клавиши быстрого доступа
При работе с формами при использовании клавиатуры очень удобно пользоваться клавишами быстрого доступа. При нажатии на клавиатуре комбинации клавиш At+некоторый символ, будет вызываться определенная кнопка. Например, зададим для некоторой кнопки свойство Text равное &Аватар . Первый знак - амперсанд - определяет ту букву, которая будет подчеркнута. В данном случае надпись будет выглядеть как А ватар. И теперь чтобы вызвать событие Click, нам достаточно нажать на комбинацию клавиш Alt+А.
Кнопки по умолчанию
Форма, на которой размещаются все элементы управления, имеет свойства, позволяющие назначать кнопку по умолчанию и кнопку отмены.
Так, свойство формы AcceptButton позволяет назначать кнопку по умолчанию, которая будет срабатывать по нажатию на клавишу Enter.
Аналогично работает свойство формы CancelButton , которое назначает кнопку отмены. Назначив такую кнопку, мы можем вызвать ее нажатие, нажав на клавишу Esc.
Прежде чем написать программу «Привет», давайте определимся, что будет делать программа и как она должна выглядеть в действии.
После запуска программы должно появиться окно приложения. Окно должно содержать две кнопки (Привет и Очистить) и пустое текстовое поле (рис.1.1).
Рис.1.1. Внешний вид приложения
Если щелкнуть мышью на кнопке Привет, в текстовом поле появится надпись "Здравствуй, Мир!" (рис.1.2)
Рис.1.2. Приложение в действии.
Если щелкнуть мышью на кнопке Очистить, программа очищает текстовое поле.
Создание нового проекта
Как видите, Visual Studio позволяет создавать проекты разных типов. Для нашего первого урока мы будем использовать проект типа Windows Forms Application. Выделите мышкой шаблон Windows Forms Application. Далее измените имя проекта. В поле Name удалите текст по умолчанию WindowsFormsApplication1 и введите текст MyFirstProgram. Следующее поле Location показывает место, где будет храниться ваш проект. Вы можете изменить место хранения проекта. Для этого щелкните кнопку Browse. и выберите папку на вашем компьютере. Теперь можно щелкнуть кнопку OK.
Рис.1.3. Создание нового проекта
У вас откроется среда разработки Visual Studio. В центре экрана вы увидите окно формы (пока пустое) с заголовком Form1. Ваша задача - сделать его похожим на форму готового приложения
Рис.1.4. Пустая форма
Изменяем заголовок формы
Пустая форма, которая появилась у вас на экране, имеет заголовок Form1. Эту стандартную надпись в заголовке Visual Studio присваивает любой вновь созданной форме. В учебных целях вы можете оставлять эту надпись без изменений, но давайте сделаем форму более профессиональной. В нашей первой программе заголовок имеет надпись Привет.
Примечание: Форму часто называют окном. В принципе это одно и то же. Во время разработки мы будем использовать термин форма, а во время работы программы эту форму на экране будем называть окном.Итак, изменим заголовок у формы на Привет
Убедитесь, что окно формы является текущим. Это легко распознать по заголовку - оно должно быть активным (подсвеченным). Если форма не является текущим, то просто щелкните мышью в любом месте формы или по заголовку.
В правой части среды разработки найдите окно Properties. Если оно у вас скрыто, то в меню View выберите команду Properties Windows.
Щелкните на поле, расположенном справа от надписи Text. В данный момент поле содержит текст Form1. Удалите этот текст и введите новый текст Привет. Окно свойств должно принять вид, как на рис 1.5.
Рис.1.5. Изменяем заголовок у формы
Ура! Вы изменили заголовок формы. Взгляните на окно формы - надпись изменилась (рис.1.6).
Рис.1.6. Форма с новым заголовком.
Добавляем кнопку
Мы знаем, что в окончательном варианте на форме должны быть кнопки Привет и Очистить. Давайте сделаем это.
Чтобы поместить кнопку на форму, сначала выберите ее в коллекции инструментов.
Окно коллекции инструментов содержит значки различных элементов управления. Ваша задача - выбрать нужный объект и поместить его на форму.
Примечание: Если коллекция инструментов не видна, то в меню View выберите команду Toolbox.Найдите среди значков нужный элемент с надписью Button.
Дважды щелкните на значке кнопки - в результате Visual Studio поместит кнопку с надписью Button на форму (рис.1.7).
Рис.1.7. Помещаем кнопку на форму
Visual Studio автоматически присвоила некоторые свойства для нашей кнопки. Мы должны изменить их для нашего удобства, как это мы сделали для заголовка формы.
Перейдите на панель Properties (если она невидима, то выполните команду Properties Window из меню ё1)
Убедитесь, что поле списка в верхней части окна свойств содержит надпись button1 System.Windows.Forms.Button (рис.1.6)
Примечание: На данном этапе к вашей форме относятся два объекта: сама форма Form1 и кнопка button1. Окно свойств отображает свойства того объекта, чье имя выбрано в свернутом списке вверху окна. Чтобы переключиться на другой объект, щелкните на кнопке со стрелкой в поле списка и разверните список: он содержит имена всех элементов формы. Щелкните на имени нужного вам элемента, и окно Properties отобразит набор свойств этого элемента.Измените значение свойства Name с button1 на butHello.
Рис.1.8. Присваиваем новое имя кнопке
По умолчанию, Visual Studio присвоило кнопке надпись button1, которую вы видите сейчас на кнопке. Давайте изменим ее на более понятную надпись. Находим свойство Text и изменяем текст button1 на Привет.
Изменяем положение кнопки
Кнопка в нашем варианте должна находиться не в углу формы, а чуть ниже.
Перетащите ее в нижнюю часть формы: поместите указатель мыши на кнопку Привет, нажмите на кнопку мыши и, не отпуская кнопки мыши, переместите кнопку Привет в нужное место.
Изменяем свойство Font (Шрифт) у кнопки
Продолжим изменять свойства у кнопки. Снова переходим в окно свойств и щелкните на поле справа от надписи Font. При этом появится кнопка с тремя точками. Щелкните на этой кнопке. Появится диалоговое окно Font, позволяющее выбрать и установить новый шрифт.
Выберите нужный размер шрифта, например, 10. Щелкните на кнопке OK диалогового окна Font
Взгляните на кнопку: шрифт надписи Привет изменился.
Примечание: Изменяя значения у многих свойств, вы можете немедленно увидеть результат на форме. Пользуйтесь этим, экспериментируйте со свойствами выбранных элементов, пока результат не удовлетворит вас полностью.Добавляем вторую кнопку
Теперь нам необходимо добавить на форму вторую кнопку с надписью Очистить. Повторяем уже знакомые операции. Дважды щелкаем на значке кнопки в коллекции инструментов. На форме появится вторая кнопка. Перетащите ее в правую часть формы рядом с первой кнопкой. Далее измените у кнопки свойства Name с button1 на butClear и свойство Text на текст Очистить. Также можете изменить размер шрифта.
Изменяем размеры кнопок
Первоначальные размеры, которые Visual Studio установил кнопкам, могут нам не подойти. Например, слово Очистить может оказаться слишком большим и не помещается целиком на кнопке. Давайте научимся изменять размеры кнопок.
Выберите нужный объект одиночным щелчком (не двойным!). Выбранный элемент будет заключен в прямоугольник из небольших белых квадратиков, которые называются маркерами. Аккуратно подведите указатель мыши к любому маркеру и, удерживая нажатой кнопку мыши, перетаскивайте маркер в нужном направлении, пока объект не примет требуемый размер. Например, маркеры на вертикальных гранях объекта меняют его горизонтальные размеры и наоборот. Маркеры на углах меняют размеры объекта в обоих направлениях одновременно.
Добавляем на форму текстовое поле TextBox
Остался еще один элемент, которого не хватает для нашей программы - это текстовое поле TextBox. Данный элемент предназначен для ввода любого текста. Иногда этот элемент называют полем редактирования.
Помещаем элемент TextBox на форму
У нас уже есть опыт добавления кнопок на форму. Теперь мы должны добавить текстовое поле. Найдите в коллекции инструментов значок текстового поля.
Двойным щелчком на значке Tex t Box поместите элемент на форму.
Выбрав его на форме, измените положение и размер элемента как показано на рисунке 1.9.
Рис.1.9. Размещение всех элементов на форме
Изменяем значения свойств элемента TextBox
Измениим несколько свойств у текстового поля. Измените значение свойства Name с textBox1 на txtDisplay. По желанию, вы можете изменить размер шрифта.
Вводим исходный код
Этап визуального программирования на этом завершен. Мы сконструировали внешний вид программы. Теперь осталось ввести исходный код для программы.
Пишем процедуру для кнопки Привет (butHello)
Дважды щелкните на кнопке Привет (butHello). Visual Studio откроет окно программного кода. Обратите внимание, что Visual Studio автоматически поместил в окно программного кода строчки:
Как мы договаривались, при нажатии на кнопку в текстовом поле должна появиться надпись Здравствуй, Мир!. Поместите курсор между фигурными скобками < >и введите следующий код:
Обратите внимание, что когда вы набрали слово txtDispaly и поставили точку, то Visual Studio предложил вам выбрать уже готовые варианты для продолжения. Не обращайте пока внимания на подсказки и продолжайте набирать текст. Не забудьте поставить в конце строки точку с запятой.
Вводим код для кнопки Очистить
Снова переключитесь в режим визуального редактирования (View | Designer) и дважды щелкните на кнопке Очистить (butClear). Visual Studio снова сгенерирует заготовку для события Click второй кнопки. Задача этой процедуры заключается в очистке текстового поля. Для этого нужно присвоить для значения свойства Text пустую строку.
Выполняем программу Привет
Все готово для нашей первой программы. Пора проверить ее в действии. Выберите в меню Debug | Start Debugging.
Если вы не сделали ни одной ошибки, то у вас на экране появится окно нашей программы. Щелкните на кнопке Привет. В текстовом поле появится текст, который мы задали в коде программы. Теперь щелкните на кнопке Очистить. Текст исчезнет. Вы можете пощелкать по кнопкам несколько раз. Чтобы выйти из программы, нажмите на кнопку Закрыть в верхнем правом углу программы.
Когда вы выходите из программы, то можете снова вносить в нее изменения в Visual Studio. Попробуйте самостоятельно изменить программу таким образом, чтобы при щелчке на кнопке Привет в текстовом поле появилась надпись Привет, мама!.
Исполняемый файл EXE
Когда вы запустили программу в первый раз, то Visual Studio автоматически создал исполняемый файл EXE. Откройте папку, в котором вы сохраняли свой проект. Там найдите подпапку \bin\Debug, в которой увидите файл MyFirstProgram.exe.
Вы можете скопировать этот файл на флешку и передать ее своим знакомым, чтобы они увидели вашу программу на своем компьютере. На этом первый урок завершен.
Итоги
Состав панели элементов меняется в зависимости от того, какую платформу вы выбираете для разработки. Например, ниже на рисунке показаны различные варианты Toolbox для трех вариантов проектов: WinForms, WPF и UWP:
По умолчанию в панели элементов (toolbox) появятся только стандартные элементы управления. Например, мы захотим использовать в нашем проекте компоненты Ribbon Controls (как в Office). Для того, чтобы их использовать в своем проекте, мы должны добавить ссылку на них в свой проект. Сделать это можно следующим образом:
Теперь мы можем подключать необходимые пространства имен в наш проект и использовать компоненты в проекте. Однако в панели элементов они не появятся. Для того, чтобы добавить их в панель элементов необходимо выполнить ещё несколько простых действий.
Добавим наши компоненты Ribbon Controls в панель элементов. Элементы могут добавляться как в уже существующие вкладки, так и в новые, созданные нами. Воспользуемся вторым вариантом.
5. Теперь в панели элементов появятся новые элементы управления, которые можно добавлять на форму приложения простым перетаскиванием мышкой:
Сегодня мы разобрались с вопросом как добавить новые элементы управления в проект и добавить их в панель элементов (toolbox) Visual Studio 2019. Не всегда устанавливаемые элементы управления автоматически отображаются в панели элементов, поэтому иногда требуется воспользоваться их добавлением вручную, используя возможности IDE.
Читайте также: