Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 25

Как отключить события CheckBox при запуске формы

21.11.2016, 17:47. Показов 5979. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет! Как отключить события? Например, на форме есть чекбокс. Если этот чексбокс устанавливается программой, то не запускать события чекбокса. Есть ли в VB .net такое?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2016, 17:47
Ответы с готовыми решениями:

Включить или отключить CheckBox при запуске программы в зависимости от значения переменной
Есть в VB некий чекбокс - RadioButton1, и некая переменная - Version, которая загружается из файла сразу при запуске. Можно ли как-то...

Как отключить клавиатуру при запуске приложения
А как отключить только клавиатуру. Т.е при запуске программы клавиатура должна полностью отключиться

Как отключить макросы в MS Access при запуске приложения
Есть файл с макросом, но при запуске срабатывает макрос на закрытие приложения как его можно временно остановить, заблокировать чтобы...

38
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 25
22.11.2016, 09:32  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Yury Komar Посмотреть сообщение
А зачем эти уточнения?
Я думал, что любой VB .net программист, работающий с формой, сталкивается с проблемой, описанной в этой теме.
И с первого сообщения уже было бы понятно, что за проблема, и пути ее решения.
Например, в моем языке программирования я сразу понимаю о чем речь, когда на форумах появляется такой вопрос.
0
2087 / 1809 / 174
Регистрация: 25.07.2015
Сообщений: 2,929
22.11.2016, 11:13
Цитата Сообщение от Kinj Посмотреть сообщение
Например, в моем языке программирования я сразу понимаю о чем речь, когда на форумах появляется такой вопрос.
Хорошо , напишите на вашем языке программирования решение вашей же задачи , а мы
попробуем транслировать его на VB.NET ))
Так хотя бы будет понятна сама задача.
1
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 25
22.11.2016, 11:20  [ТС]
В сообщении 10 предложено решение проблемы, описанной в этой теме.
Возможно есть и другие варианты. Не знаю, в учебниках по VB .net описана эта проблема? Если да, то не могли бы написать название учебника, раздел и номер страницы.
0
2087 / 1809 / 174
Регистрация: 25.07.2015
Сообщений: 2,929
22.11.2016, 11:50
Цитата Сообщение от Kinj Посмотреть сообщение
В сообщении 10 предложено решение проблемы, описанной в этой теме.
Да вот нет ))
В 10 сообщении описаны методы работы с чекбоксом : программно или юзером. Вернее наоборот , если
следовать последовательности строк приведённого кода.
Вы упустили вот это
Цитата Сообщение от Yury Komar Посмотреть сообщение
Sklifosofsky, это тоже вариант, но само событие ведь всеравно выполняется...
При открытии формы , при инициализации чекбокс всегда выполняет событие "ChackedChanged".
Ему же надо принять какое-то значение или true или false , по другому не бывает,
разве что вы его вырубите при загрузке формы
VB.NET
1
chkbox.enabled =false
Но это опять будет событие ))
Потому и не понятна (мне во всяком случае) задача
Цитата Сообщение от Kinj Посмотреть сообщение
Чтобы не запускалось любое событие чекбокса. В данный момент нужно чтобы не запускалось событие "ChackedChanged".
1
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 25
22.11.2016, 11:54  [ТС]
У меня работает то, что предложено в сообщении 10.
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
22.11.2016, 13:31
Kinj, а понимание того, как оно в сообщении-10 работает? есть то? можно, как я уже говорил, в коде дизайнера удалить срочку в аоторой устанавливается свойство Cheked и тогда ваша проблема решится, и при запуске формы это событие не возникнет...
хотя я уже начинаю повторяться...
0
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 25
22.11.2016, 14:05  [ТС]
Программа ставит галочку, если галочка нужна. Например, юзер поставил галочку, программа это запомнила. Затем при следующем запуске программы программа смотрит, ставить галочку или нет.
0
2087 / 1809 / 174
Регистрация: 25.07.2015
Сообщений: 2,929
22.11.2016, 14:26

Не по теме:

Цитата Сообщение от Yury Komar Посмотреть сообщение
а понимание того, как оно в сообщении-10 работает?
не похоже


Цитата Сообщение от Kinj Посмотреть сообщение
У меня работает то, что предложено в сообщении 10.
Ну так чего же ему не работать то ?
Повторюсь :
Цитата Сообщение от Kulma Посмотреть сообщение
В 10 сообщении описаны методы работы с чекбоксом
Вы понимаете разницу между методами и событиями ?
Т.е. при клике по нему (метод OnClick) юзером мышкой вызывается событие CheckedChanged
это здесь
VB.NET
1
2
3
4
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs)
        'действия над CheckBox
        '...
End Sub
А вот здесь
VB.NET
1
2
3
4
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'привязывание события к методу
        AddHandler Me.CheckBox1.CheckedChanged, AddressOf CheckBox1_CheckedChanged
 End Sub
делается ровно то же самое , что выше , только программно.


Цитата Сообщение от Kinj Посмотреть сообщение
Программа ставит галочку, если галочка нужна. Например, юзер поставил галочку, программа это запомнила.

Программа сама по себе не может ничего запомнить , т.к. все действия происходят в оперативной памяти ,
которая очищается при закрытии программы.
Она может запомнить действия юзера только в том случае , если вы где-нибудь
сохраните то значение , которое юзер ввёл.
Тогда да , программа считывает это значение и меняет состояние чекбокса....
Ну так тогда и надо было объяснить правильно .....))))
3
 Аватар для Sklifosofsky
1086 / 916 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
22.11.2016, 19:21
Походу нужно очень детально писать)
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Class Form1
 
     Public Sub New()
        InitializeComponent() '<- в этом стандартном методе конструктора происходят все настройки, которые вы ввели в дизайнере. Также установка галочки в CheckBox
 
        'и до этого момента ничего не произойдет. Метод CheckBox1_CheckedChanged не будет вызван при старте
        ' |
        ' V
        AddHandler Me.CheckBox1.CheckedChanged, AddressOf CheckBox1_CheckedChanged
        'а вот после, как пользователь будет кликать - все заработает
    End Sub
    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) 'этот метод  должен быть не привязан, то есть не должно быть строк "Handles CheckBox1.CheckedChanged"
        'действия над CheckBox
        '...
    End Sub
 
End Class
4
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 25
23.11.2016, 08:03  [ТС]
Sklifosofsky, а можно ли отключить не одно событие, указывая его имя, а вообще все события всех контролов (а не только одного чекбокса)? Есть ли такая команда, записав которую, все события будут отключены?
Я планирую использовать код из сообщения 10, а не из 29.
0
 Аватар для Step_UA
1591 / 664 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
23.11.2016, 10:00
Kinj, а нужно ли именно отключение событий? ...

1. Если речь идет только о чекбоксах , то используйте событие Click для обработки изменения пользователем
VB.NET
1
2
3
    Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
        ' код для обработки клика - при программном изменении не срабатывает
    End Sub
2. Либо вводите переменную указывающую, что изменения производятся программно (не пользователем) и проверяйте ее состояние
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Private isProg As Boolean = False
 
    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        If isProg Then Exit Sub
        ' обработка при изменении пользователем
    End Sub
 
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If isProg Then Exit Sub
        ' обработка при изменении пользователем
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        isProg = True
        CheckBox1.Checked = True
        TextBox1.Text = "Test"
        isProg = False
    End Sub
1
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 25
23.11.2016, 10:04  [ТС]
Step_UA, эта тема не имеет никакого отношения к чекбоксам. Изначально тема называлась по-другому, тему кто-то переименовал (наверное модераторы). У меня общий вопрос по всем контролам. Чекбокс я привел для примера для форумчанинов, которые не могли понять, что я хочу сделать.
0
 Аватар для Step_UA
1591 / 664 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
23.11.2016, 10:08
Цитата Сообщение от Kinj Посмотреть сообщение
эта тема не имеет никакого отношения к чекбоксам
Тогда вариант 2 или "смесь": первый вариант для чекбокосов и радиобутонов, второй для остальных элементов
0
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 25
23.11.2016, 10:37  [ТС]
Step_UA, второй вариант из сообщения 31 на первый взгляд хуже, чем вариант из сообщения 10. В вашем варианте нужно делать больше действий.
А вот первый вариант действительно можно использовать в каких-то случаях (буду это иметь ввиду).
0
26 / 26 / 6
Регистрация: 09.09.2015
Сообщений: 155
23.11.2016, 15:07
а что если проверять видимость формы, то есть если форма грузится ничего не выполнять а если загрузилась то выполняем действие
1
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 25
23.11.2016, 15:14  [ТС]
BatyrbekAl, изначально в названии темы не было "при запуске формы" (это кем-то добавлено). У меня общий вопрос и отключить события может потребоваться в любой момент. Поэтому у вас частный случай. Хотя наверное тоже имеет смысл, если этого будет достаточно для программы.
И где вы предлагаете делать такую проверку? Внутри события, которое надо отключить? Тогда это усложнение кода.
0
2087 / 1809 / 174
Регистрация: 25.07.2015
Сообщений: 2,929
23.11.2016, 15:57
Kinj, вы никак не можете понять : СОБЫТИЕ(Я) ОТКЛЮЧИТЬ НЕЛЬЗЯ, его(их) можно не использовать.
События - это часть контрола и загружаются при его инициализации.
Как вы думаете, у вас можно, например, временно отключить печень или почки,
вы будете после этого функционировать ? ))
Вот ровно то же и с контролом.
Вы можете использовать позднее связывание ( то , что вам в 10 посту предложил Sklifosofsky, в 29 он просто разжевал
вам ранее описанное),т.е. не инициализировать контрол при открытии формы , а инициализировать его по действию
пользователя или программы, но и всё . И при этом контрол при инициализации сразу же
подгрузит весь свой функционал (методы, свойства, события), включая те, которые вам не нужны.
Вы просто можете к ним не обращаться...
0
1 / 1 / 0
Регистрация: 30.09.2016
Сообщений: 25
23.11.2016, 17:38  [ТС]
Kulma, вы буквально все воспринимаете или я задаю вопрос неправильно. Задача не отключить событие, а чтобы оно не запускалось. То есть чтобы управлять запуском события. И разжовывают не мне, а участникам этой темы, которые не могут понять, что мне нужно. Я уже давно понял, что предложил мне Sklifosofsky и уже использую это в своей программе, а вы все никак не можете понять, что мне нужно.
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4372 / 3442 / 512
Регистрация: 27.01.2014
Сообщений: 6,266
23.11.2016, 17:42
Предлагаю это все прекратить и разойтись по своим углам
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.11.2016, 17:42

Как отключить такое окно при запуске приложения ?
Что-то нажал ни знаю что и теперь при каждом запуске сразу после компиляции вылазит это: и что-то там загружает целую кучу...

CheckBox Отключить при старте программы
Создал чекбокс со стрта программы он должен быть false но как включаю программу проверяю он оказывается true c чем это может быть...

Как отключить блокировку окон word при вызове формы
Добрый день! Может кто нибудь знает и сможет подсказать. Проблема такая, у меня есть макрос автозаполнения, соответственно к нему...

Создаем события при изменении checkbox
Надо создать событие на checkbox даный варин работае: &lt;script type=&quot;text/javascript&quot;&gt; function showOrHide(cb, cat) { cb =...

Как отключить системные звуки при вызове 2й формы или messagebox?
Подскажите, пожалуйста. Почему то не могу найти инфу:(


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru