Vb.net событие кнопки, которое может управлять бесконечным циклом метода формы для выхода из него
Привет
У меня есть форма с одной кнопкой
и одно текстовое поле
В событие нажатия кнопки я поставил логическое
флаг, который также существует в другом методе формы, управляющем циклом (выход из цикла)
Мой вопрос в том, что этот контроль в порядке
Если не то, что мне нужно сделать.
Спасибо.
Что я уже пробовал:
Я не имею ни малейшего представления как и если это так
Контроль в порядке
Richard MacCutchan
Что происходит, когда вы запускаете его?
Member 13569650
Иногда делаем выход из петли
Иногда стек и мне нужен
Используйте щелчок X для прерывания.
Спасибо.
0x01AA
Похоже, что ваш цикл действительно мешает обслуживать насос сообщений. Попробуйте вызвать приложение.DoEvents в петле. Может быть, не каждый цикл, но, может быть, каждый 10-й или 100-й
Member 13569650
Прежде чем я сделаю этот звонок, который, как я подозреваю, замедлит мою работу.
Метод задачи.
Я хочу знать, если событие кнопки
Код и код метода формы
запускаются одновременно у всех.
Member 13569650
Я не знаю как это выложить я то что вы пробовали
поэтому я размещаю его здесь
========================
'
Система Импорта
Система Импорта.Окна.Формы
EhRegExTester модуль
Суб Основной()
Dim myForm как новая форма 1
ссылки.Метод showdialog()
Конец Подводной Лодки
Конечный Модуль
Общественного Класса Form1
Dim message1 As String = Nothing
Dim флаг как Boolean = False
Частная суб обработчика button1_click(отправителя как объект, а равно EventArgs) обрабатывает кнопки button1.Щелчок
флаг = True
Конец Подводной Лодки
Публичная Подзадача Длины
Пока Это Правда
Если флаг то выходите пока
Конец Пока
с помощью MsgBox("текстовое поле textbox1.Текст = " &амп; текстовое поле textbox1.Текст)
Конец Подводной Лодки
End Класса
&ЛТ;глобальные.Майкрософт.на языке VisualBasic.compilerservices.designergenerated()&ГТ; _
Частичного Класса Form1
Наследует Систему.Окна.Форм.Форма
-Форма переопределяет dispose для очистки списка компонентов.
<system.diagnostics.debuggernonusercode()> _
Защищенные переопределения суб распоряжаться(бывал утилизации как логическое)
Попробуй
При утилизации, атакже компоненты ничего не значит
компоненты.Располагать()
Конец, Если
Окончательно
Моя база.Утилизация(утилизация)
Конец Попытки
Конец Подводной Лодки
- Требуется дизайнером форм Windows
Частные компоненты как система.ComponentModel.# То #
'Примечание: следующая процедура требуется конструктором форм Windows
- Его можно изменить с помощью конструктора форм Windows.
- Не изменяйте его с помощью редактора кода.
<system.diagnostics.debuggerstepthrough()> _
Частная Суб Метода Initializecomponent()
Me.TextBox1 = Новая Система.Окна.Формы.текстовый()
Me.Button1 = Новая Система.Окна.Формы.Кнопка()
Меня.SuspendLayout()
'
'Текстовое поле textbox1
'
Меня.Текстовое поле textbox1.Расположение = Новая Система.Рисование.Точка(102, 222)
Меня.Текстовое поле textbox1.Наименование = "Элемент Textbox1"
Меня.Текстовое поле textbox1.Размер = Новый Система.Рисование.Размер(459, 22)
Я.Текстовое Поле 1.TabIndex = 0
'
'Кнопка button1
'
Я.Кнопка 1.Местоположение = Новая Система.Рисование.Точка(232, 104)
Я.Кнопка 1.Имя = "Button1"
Я.Кнопка 1.Размер = Новая Система.Рисование.Размер(234, 23)
Я.Кнопка 1.TabIndex = 1
Я.Кнопка 1.Text = "Button1"
Я.Кнопка 1.UseVisualStyleBackColor = True
'
-Форма 1
'
Me.AutoScaleDimensions = Новая Система.Рисование.SizeF(8.0!, 16.0!)
Me.AutoScaleMode = Система.Окна.Формы.AutoScaleMode.Font
Me.ClientSize = Новая Система.Рисование.Размер(688, 458)
Я-Контроль.Добавить(Me.Button1)
Я-Контроль.Добавить(Me.TextBox1)
Me.Name = "Форма 1"
Me.Text = "Form1"
Me.ResumeLayout(False)
Меня.PerformLayout()
Конец Подводной Лодки
Друг WithEvents TextBox1 Как Система.Окна.Формы.текстовый
Друг С Событиями Button1 Как Система.Окна.Формы.Кнопка
End Класса
=======================
Member 13569650
Сори об этом коде неисправности
Не реагируйте на это.
Member 13569650
- Сори, это опять правильный код.
"если я нажму кнопку Показать сообщение, то никакие сообщения не будут отображаться, потому что флаг ложен
- Когда я нажимаю кнопку falg false, чтобы переключить ее на флаг True.
- приложение не реагирует.
'
"как я могу сделать это простое приложение, чтобы реагировать, когда листать bettween
- правда и ложь
- Я очень благодарен Вам за любую помощь
'
'
Система Импорта
Система Импорта.Окна.Формы
Модуль М1
Суб Основной()
Dim myForm как новая форма 1
ссылки.Метод showdialog()
Конец Подводной Лодки
Конечный Модуль
Общественного Класса Form1
Dim message1 As String = Nothing
Dim флаг как Boolean = False
Частная суб обработчика button1_click(отправителя как объект, а равно EventArgs) обрабатывает кнопки button1.Щелчок
'flag = True
LengthyTask()
Конец Подводной Лодки
Частная суб методе button2_click(отправителя как объект, а равно EventArgs) обрабатывает элемент button2.Нажмите
флаг = не флаг
Я.Кнопка 2.Text = "Flag =" & flag.Метод toString
Конец Подводной Лодки
Публичная Подзадача Длины()
Пока Это Правда
Если флаг то
Выходите Пока
Конец, Если
Конец Пока
с помощью MsgBox("текстовое поле textbox1.Текст = " &амп; текстовое поле textbox1.Текст)
Конец Подводной Лодки
End Класса
&ЛТ;глобальные.Майкрософт.на языке VisualBasic.compilerservices.designergenerated()&ГТ; _
Частичного Класса Form1
Наследует Систему.Окна.Форм.Форма
-Форма переопределяет dispose для очистки списка компонентов.
<system.diagnostics.debuggernonusercode()> _
Защищенные переопределения суб распоряжаться(бывал утилизации как логическое)
Попробуй
При утилизации, атакже компоненты ничего не значит
компоненты.Располагать()
Конец, Если
Окончательно
Моя база.Утилизация(утилизация)
Конец Попытки
Конец Подводной Лодки
- Требуется дизайнером форм Windows
Частные компоненты как система.ComponentModel.# То #
'Примечание: следующая процедура требуется конструктором форм Windows
- Его можно изменить с помощью конструктора форм Windows.
- Не изменяйте его с помощью редактора кода.
<system.diagnostics.debuggerstepthrough()> _
Частная Суб Метода Initializecomponent()
Me.TextBox1 = Новая Система.Окна.Формы.текстовый()
Me.Button1 = Новая Система.Окна.Формы.Кнопка()
Me.Button2 = Новая Система.Окна.Формы.Кнопка()
Меня.SuspendLayout()
'
'Текстовое поле textbox1
'
Меня.Текстовое поле textbox1.Расположение = Новая Система.Рисование.Точка(102, 222)
Меня.Текстовое поле textbox1.Наименование = "Элемент Textbox1"
Меня.Текстовое поле textbox1.Размер = Новый Система.Рисование.Размер(459, 22)
Я.Текстовое Поле 1.TabIndex = 0
'
'Кнопка button1
'
Я.Кнопка 1.Местоположение = Новая Система.Рисование.Точка(102, 124)
Я.Кнопка 1.Имя = "Button1"
Я.Кнопка 1.Размер = Новая Система.Рисование.Размер(234, 23)
Я.Кнопка 1.TabIndex = 1
Я.Кнопка 1.Text = "Показать Сообщение"
Я.Кнопка 1.UseVisualStyleBackColor = True
'
-Кнопка 2
'
Я.Кнопка 2.Местоположение = Новая Система.Рисование.Точка(362, 124)
Я.Кнопка 2.Наименование = "Элемент Button2"
Я.Кнопка 2.Размер = Новая Система.Рисование.Размер(199, 23)
Я.Кнопка 2.TabIndex = 2
Я.Кнопка 2.Text = "Flag = False"
Меня.Элемент button2.UseVisualStyleBackColor = Истина
'
-Форма 1
'
Me.AutoScaleDimensions = Новая Система.Рисование.SizeF(8.0!, 16.0!)
Me.AutoScaleMode = Система.Окна.Формы.AutoScaleMode.Font
Me.ClientSize = Новая Система.Рисование.Размер(688, 458)
Я-Контроль.Добавить(Me.Button2)
Я-Контроль.Добавить(Me.Button1)
Я-Контроль.Добавить(Me.TextBox1)
Me.Name = "Форма 1"
Me.Text = "Form1"
Me.ResumeLayout(False)
Меня.PerformLayout()
Конец Подводной Лодки
Друг WithEvents TextBox1 Как Система.Окна.Формы.текстовый
Друг С Событиями Button1 Как Система.Окна.Формы.Кнопка
Друг С Событиями Button2 Как Система.Окна.Формы.Кнопка
End Класса