1 / 1 / 0
Регистрация: 15.12.2015
Сообщений: 17

События контролов xaml и как избежать рекурсии

01.03.2016, 16:26. Показов 1250. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Возникла такая проблема. У меня есть TextBox и переменная float. При изменении текста в TextBox должно изменяться значение переменной и наоборот. При этом с переменной постоянно происходят какие-то вычисления.
В результате у меня при изменении текста изменяется переменная затем снова текст и т.д., и когда я например хочу ввести 0.1, в тот момент когда я дохожу до точки он ее стирает и не дает ввести.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2016, 16:26
Ответы с готовыми решениями:

XAML. Выравнивание контролов в ToolBar и StatusBar. + ширина контролов в процентах
Выравнивание контролов в ToolBar и StatusBar с помощью Grid или без. + ширина контролов в процентах. Есть главный Grid, в нем лежат...

XAML индексация контролов
Добрый день! Существуют ли возможность назначить контролу помимо name, id (численное)?

Как отловить события мерцания image контролов и label
Не пойму принцип работы классов никогда с ними не работал как отловить мерцания imagebox и label бокс на форме или всех сразу ? Создал...

3
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
02.03.2016, 09:58
Вводить и выводить данные в разных местах, может быть?
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
02.03.2016, 14:14
Лучший ответ Сообщение было отмечено dmitryX как решение

Решение

Несколько странный подход в интерфейсе, когда в поле ввода отображаются резултаты продолжающегося расчета и в тоже время в поле ввода можно вводить новые данные.
Могу предложить такой вариант:
Перехватывайте сообщение (EN_SETFOCUS) фокус ввода в этом окне. В этой функции устанавливаете запрет на програмнное изменение содержимого поля. Например устанввливаете флаг, и Ваша программа при установленном флаге или останавливает расчеты или перестает выводить изсенения в это поле.
Флаг снимаете прри сообщении EN_KIllFOCUS, когда фокус ввода снят с поля, тоесть пользователь завершил ввод данных. Правда тут есть тонкость по обработке ошибок ввода.

Добавлено через 42 секунды
EN_KILLFOCUS
1
1 / 1 / 0
Регистрация: 15.12.2015
Сообщений: 17
03.03.2016, 20:17  [ТС]
спасибо SSC это помогло, однако остались вопросы
  1. Я пишу приложение магазина (UWP), и у меня нет этих сообщений(если не ошибаюсь они как-то связаны с Win API). Я использовал события контрола
    XML
    1
    
    <TextBox GotFocus="LockEvents" LostFocus="UnlockEvents">


  2. У меня много контролов текстбоксы и один комбобокс. В последствии возможно станет еще больше, и по этому флаг пришлось зделать unsigned-ом и в обработчике события GotFocus вставить проверку которая записывала в переменную контрол получивший фокус, и в обработчике события изменения текста соответственно проверку этот обьект получил фокус, или нет.
Насколько правильны такие изменения, есть ли лучший вариант сделать это под UWP?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.03.2016, 20:17
Помогаю со студенческими работами здесь

Избежать рекурсии
У меня есть код. Он вызывает ошибку рекурсии. Это можно избежать? def expr(TOKENS): #tokens = iter(TOKENS) expression = '' ...

Как назначить один обработчик события для нескольких контролов
Здравствуйте. Имеется 8 numericUpDown. Подскажите пожалуйста можно ли сократить такой код: private void...

События не компилируемого xaml
Есть не компилируемый xaml, который подключается в программе. В программе создан метод: private void label1_MouseUp(object sender,...

События контролов из массива. VC++
Добрый вечер. Скажу сразу: гугл ничего толкового по этому вопросу не дал. Описание: Необходимо создать массив контроллов...

Добавить обработчик события к массиву контролов
Всем здравствуйте. На форуме есть пример создания массива контролов. Код привожу один к одному, только в качестве контрола возьму Button:...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru