Как сделать чтобы при нажатии на кнопку появлялась форма
Перейти к содержимому

Как сделать чтобы при нажатии на кнопку появлялась форма

  • автор:

Практическое руководство. Обработка события нажатия кнопки в Windows Forms

Наиболее простой способ использования элемента управления Button в Windows Forms — запуск кода при нажатии кнопки.

При щелчке элемента управления Button также создается ряд других событий, таких как события MouseEnter, MouseDown и MouseUp. Если вы планируете присоединить обработчики событий для этих связанных событий, убедитесь, что их действия не конфликтуют. Например, если нажатие кнопки очищает сведения, введенные пользователем в текстовом поле, при наведении указателя мыши на кнопку не должна отображаться подсказка с этой уже не существующей информацией.

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

Обработка нажатия кнопки

  • В Click EventHandler кнопки напишите код для выполнения. Button1_Click должен быть привязан к элементу управления. Дополнительные сведения см. в разделе Практическое руководство. Создание обработчиков событий для Windows Forms во время выполнения.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show("Button1 was clicked") End Sub 
private void button1_Click(object sender, System.EventArgs e)
private: void button1_Click(System::Object ^ sender, System::EventArgs ^ e)

См. также

  • Общие сведения об элементе управления Button
  • Способы активации элемента управления Button в Windows Forms
  • Элемент управления Button

Совместная работа с нами на GitHub

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

Как сделать так, чтобы форма открывалась при нажатии на кнопку, которой на странице находится несколько штук?

Всем привет, подскажите, пожалуйста, как сделать так, чтобы форма открывалась при нажатии на кнопку, которой на странице находится несколько штук? У меня есть кнопка и несколько ее копий на странице, и я хочу, чтобы если пользователь захотел нажать на кнопку, только на другом месте страницы, открывалась та же самая форма. Но, к сожалению, ее открывает, только самая первая кнопка, подскажите, пожалуйста, решение! Спасибо!

    

Оставьте заявку

#wrapperModal < display: none; position: fixed; width: 100%; height: 100%; z-index: 3; top: 8%; left: 20%; >#wrapperModal.active < display: block; >#overlayModal < position: absolute; top: -8%; left: -20%; width: 100%; height: 100%; z-index: 0; background-color: grey; opacity: 0.5; >.form-modal__body < width: 270px; min-height: 200px; background: #363A4D; border-radius: 20px; padding: 48px 51px 41px 50px; position: relative; >.form-modal__title < font-size: 24px; margin-bottom: 23px; >.close:before, .close:after < position: absolute; content: ' '; right: 28px; top: 16px; height: 18px; width: 2px; background-color: #7E839A; cursor: pointer; border-radius: 5px; >.close:before < transform: rotate(45deg); >.close:after < transform: rotate(-45deg); >.form-modal__label
const btnForm = document.getElementById('open'); const modal = document.getElementById('wrapperModal'); const overlay = document.getElementById('overlayModal'); const close = document.getElementById('close'); btnForm.addEventListener('click', (e) => < e.preventDefault() modal.classList.add('active'); >); const closeModal = () => < modal.classList.remove('active'); >overlay.addEventListener('click',closeModal); close.addEventListener('click',closeModal);
  • Вопрос задан более года назад
  • 588 просмотров

4 комментария

Средний 4 комментария

Курсы javascript

Подскажите пожалуйста, как сделать так, чтобы если я нажал на кнопку:

 

То на этой же странице поверх, как бы, перекрывало окошко с кодом:

Чтобы я туда ввел текст, нажал на кнопку Ок, и имя файла поменялось. Самое главное, чтобы весь код был на 1 странице, возможно ли такое? Чтобы код появляющегося окна был тоже на текущей странице.
И при нажатии Ок эта форма исчезала, а название файла менялось.
Как-то так.

15.07.2014, 13:11
Регистрация: 27.04.2012
Сообщений: 1,410

  example           

Последний раз редактировалось skrudjmakdak, 15.07.2014 в 13:16 .
15.07.2014, 13:14
Регистрация: 27.04.2012
Сообщений: 1,410
вот пример не плохой
http://jqueryui.com/dialog/#modal-form
15.07.2014, 13:21
Регистрация: 10.06.2014
Сообщений: 63
skrudjmakdak, skrudjmakdak, спасибо, сейчас буду изучать что да как!
15.07.2014, 15:04
Регистрация: 10.06.2014
Сообщений: 63

skrudjmakdak, такой вопрос, а как сделать так, чтобы окно переименовывания открывалось не при нажатии на любой инпут, а при нажатии на кнопку с определенным именем?
Например: ‘‘;

15.07.2014, 15:08
Регистрация: 27.04.2012
Сообщений: 1,410

как вариант можно так:

и доступ к нему, такой:

$(".mybutton');

16.07.2014, 11:15
Регистрация: 10.06.2014
Сообщений: 63

skrudjmakdak, а можно как-то сделать через кнопку? Потому что мне в кнопке надо передать инфу какой именно файл переименовать, в value=»».

16.07.2014, 11:41
Регистрация: 27.04.2012
Сообщений: 1,410
типо такого?

  example   



-->

16.07.2014, 12:08
Регистрация: 10.06.2014
Сообщений: 63

skrudjmakdak, вообще вот такой код:
foreach ($scan as $key => $value) echo ‘‘;
Сюда надо вставить кнопку, при нажатии на которую всплывала бы форма с текстовым полем и кнопкой ОКЕЙ, и если я что-то ввожу в форму и нажимаю окей, то менялось бы название кнопки ‘openPic’.
>
Самое главное, чтобы в раскрывающейся форме текстовое поле было всязано с определенной кнопкой, чтобы не переименовывало все кнопки openPic.
Я это думла через button value=’. ‘ передать

16.07.2014, 12:18
Регистрация: 27.04.2012
Сообщений: 1,410

ну так создай переменную, в которой будешь хранить указатель на нужную тебе кнопку:

  example   



-->

Кака при нажатии на кнопку перенаправить на форму редактирования?

Есть страница с выводом всех пользователей и 2 кнопки в каждой строке удалить и изменить, Помоги плиз как сделать так что бы при нажатии любой кнопки изменить под выбранным полем в таблице вылезало окно редактирования я бы вносил изменения и после при нажатии на кнопку данные уходили бы на сервлет и тянули бы данные $ только в тот момент когда форма заполнена, ни как ума не прилажу, как это сделать?Я новичок, за любую помощь буду благодарен

 
"> ">
  • Вопрос задан более трёх лет назад
  • 2590 просмотров

Комментировать
Решения вопроса 1

azerphoenix

Орхан Гасанлы @azerphoenix Куратор тега Java
Java Software Engineer

Начнем с простого.

Чтобы удалить запись (пользователя) нет необходимости оборачивать кнопку в form (можно и попроще сделать). Простой вариант — используя GET запрос отправляете запрос на URL вида (например, users/delete/12345 ), где 12345 это ID пользователя. Далее получаете pathvariable из урла (id — 12345) и находите по нему пользователя и в метод удаляющий пользователя передаете id пользователя. Тогда вам не нужно будет оборачивать эту кнопку в form, добавлять action, передавать csrf и т.д.

У вас сейчас получается так, что для каждого пользователя генерируется набор кнопок «Удалить» и «Изменить» и это все обернуто в form. Получится, что у вас на одной странице 100 пользователей и 100 форм. Это не есть хорошо на самом деле. (но и не является ошибкой). Просто, смысл плодить лишние теги, лишние узлы и т.д.

. под выбранным полем в таблице вылезало окно редактирования я бы вносил изменения и после при нажатии на кнопку данные уходили .

Окно редактирования, которое «вылезает» называется модальным окном. Если ваш дизайн использует bootstrap, то посмотрите bootstrap modal. Или вы можете использовать любую модалку на jquery.

Внимание! Без знаний js & jquery вы не сможете настроить то, что вы хотите.
Причина — когда производится клик на кнопке, вам нужно в открывшееся модальное окно передать id пользователя, которого вы хотите изменить. Можете например, в модалке добавить input hidden.

По факту, вам не нужна форма для кнопки «Изменить» тоже. По нажатию кнопки «Изменить» открываете модалку и в модалку передаете ID пользователя в вышеуказанный инпут. А уже блок с полями модалки обернут в одну форму.

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

Пример таблицы, как должно выглядеть:

 
Firstname Lastname Age Действие
Jill Smith 50 Удалить Изменить
John Smith 30 Удалить Изменить

Как видите в таблице с пользователями вообще нет формы.

Потом на страницу добавляете модалку. Покажу на примере бутстрапа —

 
Firstname Lastname Age Действие
Jill Smith 50 Удалить Изменить
John Smith 30 Удалить Изменить

Дальше вы пишете js код (jquery), который и будет отправлять значения полей на нужный метод контроллера и сохранять пользователя.
Пример сниппета:

$( document ).ready(function() < // По нажатию кнопки изменить передаем id пользователя на котором кликнули в скрытое поле модалки и показываем модалку $(".editUser").on("click", function() < // тут передали id пользователя из data-userId в hidden поле модалки $("#userIdHiddenInput").val($(this).attr("data-userId")); // показываем модалку $("#userEditModal").modal(); >); // По нажатию кнопки "Внести изменения" в модалке отправляем содержимое формы на сервер $(".editUser").on("click", function(event) < $("#userEditForm").submit(); >); >);

Можно реализовать по-разному. Можно например, не плодить лишние кнопки. а вверху таблицы добавить 2 кнопки. А дальше получать id пользователя при клике на элементе ряда и передавать ее значение в модальное окно и т.д.

Ваша текущая реализация:

 
"> ">

не совсем корректна, в том плане, что у вас кнопка «Изменить» отправляет форму, а нужно, чтобы она по клику показывала модалку, а дальше уже модалка в свою очередь будет отправлять содержимое формы (как я и указал выше).

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

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