Как запустить форму с помощью чекбокс
Элемент CheckBox или флажок предназначен для установки одного из двух значений: отмечен или не отмечен. Чтобы отметить флажок, надо установить у его свойства Checked значение true .
Кроме свойства Checked у элемента CheckBox имеется свойство CheckState , которое позволяет задать для флажка одно из трех состояний — Checked (отмечен), Indeterminate (флажок не определен — отмечен, но находится в неактивном состоянии) и Unchecked (не отмечен)
Также следует отметить свойство AutoCheck — если оно имеет значение false , то мы не можем изменять состояние флажка. По умолчанию оно имеет значение true .
При изменении состояния флажка он генерирует событие CheckedChanged . Обрабатывая это событие, мы можем получать измененный флажок и производить определенные действия:
private void checkBox_CheckedChanged(object sender, EventArgs e) < CheckBox checkBox = (CheckBox)sender; // приводим отправителя к элементу типа CheckBox if (checkBox.Checked == true) < MessageBox.Show("Флажок " + checkBox.Text + " теперь отмечен"); >else < MessageBox.Show("Флажок " + checkBox.Text + " теперь не отмечен"); >>
Radiobutton
На элемент CheckBox похож элемент RadioButton или переключатель. Переключатели располагаются группами, и включение одного переключателя означает отключение всех остальных.
Чтобы установить у переключателя включенное состояние, надо присвоить его свойству Checked значение true .
Для создания группы переключателей, из которых можно бы было выбирать, надо поместить несколько переключателей в какой-нибудь контейнер, например, в элементы GroupBox или Panel. Переключатели. находящиеся в разных контейнерах, будут относиться к разным группам:

Похожим образом мы можем перехватывать переключение переключателей в группе, обрабатывая событие CheckedChanged . Связав каждый переключатель группы с одним обработчиком данного события, мы сможем получить тот переключатель, который в данный момент выбран:
private void radioButton_CheckedChanged(object sender, EventArgs e) < // приводим отправителя к элементу типа RadioButton RadioButton radioButton = (RadioButton)sender; if (radioButton.Checked) < MessageBox.Show("Вы выбрали " + radioButton.Text); >>
HTML: Чекбокс
В интернет-магазинах, часто, поиск реализуется с помощью указания категорий, в которых хотим искать товар. Для реализации множественного выбора существуют чекбоксы (или, как их ещё называют — флажки).
Чекбоксы позволяют выбирать множество элементов из представленных:
Для создания чекбокса используются два тега:
- с указанием type=»checkbox»
- , в котором будет текст, связанный с нужным нам чекбоксом
Для создания связи с существует два способа:
- Связь по id . Для этого необходимо задать уникальный id для и связать с чекбоксом с помощью атрибута for
- Вложить внутрь тега . При этом указание уникального id не требуется
Для того, чтобы после отправки формы на сервер возможно было узнать, какие именно пункты были выбраны, используется атрибут value , внутри которого находится значение, позволяющее определить чекбокс.
Так как чекбоксов на странице может быть много, и они могут относиться к разным формам, для определения конкретной группы чекбоксов используется атрибут name . Для каждой группы чекбоксов указывается своё имя, по которому, в дальнейшем, возможно отделить группы чекбоксов при обработке на сервере.
Задание
Создайте форму, у которой файл с обработчиком данных лежит по адресу /people . Внутри формы создайте 2 чекбокса. Свяжите их вложив внутри . Не забудьте добавить атрибуты name и value
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Практическое руководство. Обработка события щелчка элемента управления CheckBox в Windows Forms
Всякий раз, когда пользователь щелкает элемент управления Windows Forms CheckBox, происходит событие Click. Вы можете запрограммировать приложение для выполнения некоторых действий в зависимости от состояния флажка.
Реагирование на нажатия CheckBox
- В обработчике событий Click используйте свойство Checked для определения состояния элемента управления и выполнения любых необходимых действий.
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click ' The CheckBox control's Text property is changed each time the ' control is clicked, indicating a checked or unchecked state. If CheckBox1.Checked = True Then CheckBox1.Text = "Checked" Else CheckBox1.Text = "Unchecked" End If End Sub
private void checkBox1_Click(object sender, System.EventArgs e) < // The CheckBox control's Text property is changed each time the // control is clicked, indicating a checked or unchecked state. if (checkBox1.Checked) < checkBox1.Text = "Checked"; >else < checkBox1.Text = "Unchecked"; >>
private: void checkBox1_CheckedChanged(System::Object ^ sender, System::EventArgs ^ e) < if (checkBox1->Checked) < checkBox1->Text = "Checked"; > else < checkBox1->Text = "Unchecked"; > >
Примечание. Если пользователь пытается дважды щелкнуть элемент управления CheckBox, каждый щелчок будет обрабатываться отдельно. То есть элемент управления CheckBox не поддерживает событие двойного щелчка.
Примечание. Если свойство AutoCheck имеет значение true (по умолчанию), CheckBox автоматически выбирается или очищается при щелчке. В противном случае необходимо вручную задать свойство Checked при возникновении события Click.
Определение хода действий при нажатии флажка
- Используйте оператор case для запроса значения свойства CheckState, чтобы определить ход действия. Если для свойства ThreeState задано значение true , свойство CheckState может возвращать три возможных значения: установленный флажок, неустановленный флажок и неопределенное состояние, в котором поле затемнено, потому что вариант недоступен.
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click Select Case CheckBox1.CheckState Case CheckState.Checked ' Code for checked state. Case CheckState.Unchecked ' Code for unchecked state. Case CheckState.Indeterminate ' Code for indeterminate state. End Select End Sub
private void checkBox1_Click(object sender, System.EventArgs e) < switch(checkBox1.CheckState) < case CheckState.Checked: // Code for checked state. break; case CheckState.Unchecked: // Code for unchecked state. break; case CheckState.Indeterminate: // Code for indeterminate state. break; >>
private: void checkBox1_CheckedChanged(System::Object ^ sender, System::EventArgs ^ e) < switch(checkBox1->CheckState) < case CheckState::Checked: // Code for checked state. break; case CheckState::Unchecked: // Code for unchecked state. break; case CheckState::Indeterminate: // Code for indeterminate state. break; >>
Примечание. Если свойству ThreeState присвоено значение true , свойство Checked возвращает true для Checked и Indeterminate.
См. также
- CheckBox
- Общие сведения об элементе управления CheckBox
- Практическое руководство. Задание параметров с помощью элементов управления CheckBox в Windows Forms
- Элемент управления CheckBox
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
.NET Desktop feedback
The .NET Desktop documentation is open source. Provide feedback here.
Обратная связь
Отправить и просмотреть отзыв по
Задать положение checkbox на форме
Здравствуйте, создал в форме несколько checkbox’ов, появился вопрос: Как мне задать положение checkbox на форме?
Допустим, я выбрал на форме один из них и перевел в режим checked при выполнении программы, как мне теперь заблокировать остальные checkbox’и, чтобы пользователь не мог их выбрать? Или как мне перевести их в состоянии indeterminate с помощью условия if в коде программы, отталкиваясь от положения выбранного мной checkbox’а в ходе выполнения программы?
Буду очень благодарен за ответы.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как задать положение формы в зависимости от выбранного radiobutton?
Как задать положение формы в зависимости от выбранного radiobutton? RadioGroup — список.
Как задать случайное положение окна при запуске программы
Здравствуйте, как задать случайное положение окна при запуске программы и как сделать невидимыми.

Запомнить положение и размеры всех конролов на форме
Собственно есть базовый класс SettProg, который содержит список состоящий из одинаковых экземпляров.

Перемещение фигуры на форме. Исходное положение задаётся случайно
Здравствуйте. Возникла небольшая проблема. Хочу, чтобы от края экрана начал двигаться эллипс, при.
![]()
10177 / 6159 / 1451
Регистрация: 25.05.2015
Сообщений: 18,692
Записей в блоге: 14
Меняя свойства Checked (2 состояния) или CheckState (3 состояния).
Enabled в false, чтобы не мог выбрать.
Вы свойства в PropertyGrid’е не смотрели чтоль?
Регистрация: 07.07.2015
Сообщений: 1

Сообщение было отмечено Памирыч как решение
Решение
можно вот так попробовать (для четырех CheckBox — ов)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) { checkBox2.Enabled = false; checkBox3.Enabled = false; checkBox4.Enabled = false; } else { checkBox2.Enabled = true; checkBox3.Enabled = true; checkBox4.Enabled = true; } } private void checkBox2_CheckedChanged(object sender, EventArgs e) { if (checkBox2.Checked) { checkBox1.Enabled = false; checkBox3.Enabled = false; checkBox4.Enabled = false; } else { checkBox1.Enabled = true; checkBox4.Enabled = true; checkBox3.Enabled = true; } } private void checkBox3_CheckedChanged(object sender, EventArgs e) { if (checkBox3.Checked) { checkBox1.Enabled = false; checkBox2.Enabled = false; checkBox4.Enabled = false; } else { checkBox1.Enabled = true; checkBox2.Enabled = true; checkBox4.Enabled = true; } } private void checkBox4_CheckedChanged(object sender, EventArgs e) { if (checkBox4.Checked) { checkBox1.Enabled = false; checkBox2.Enabled = false; checkBox3.Enabled = false; } else { checkBox1.Enabled = true; checkBox2.Enabled = true; checkBox3.Enabled = true; } }
