У меня есть форма в моем приложении, где пользователи могут вводить список серийных номеров, каждый из которых должен быть подвергнут быстрой проверке, а затем добавлен в список (это для модуля ввода акций). Поэтому пользователи обычно используют сканеры штрих-кодов для сканирования серийных номеров из кучи предметов запаса.MessageBox без кнопки по умолчанию
Я обрабатываю событие KeyPress
TextBox
, у которого есть фокус, пока пользователи просматривают элементы и ищут e.KeyChar == 13
(клавиша ввода). Всякий раз, когда вводится нажатие, я знаю, что у меня есть полный серийный номер, который я могу проверить, прежде чем добавлять его в список.
Здесь возникает моя проблема; При определенных условиях я должен указать пользователю на этот момент, действительно ли он хочет, чтобы элемент запаса был добавлен в список или нет. Я использую MessageBox
для этого, например, так:
if (MessageBox.Show("This is a special stock item.\r\nDo you want to add it to the list?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
// Add item to list
else
// Do not add item to list
Но так это то, что происходит только иногда, пользователи часто не увидеть даже MessageBox
и просто сканирует следующий серийный номер, который теряется конечно, но который заканчивается клавишей ввода, которая запускает кнопку по умолчанию на MessageBox
и не намеревается это сделать, а иногда даже не знает, что это произошло, пользователь добавляет элемент в список и пропускает следующий элемент.
Есть ли способ предотвратить то, что MessageBox
будет стрелять из любых кнопок, если нажата кнопка ввода? Я не возражаю, если пользователь продолжает сканировать штрих-код после штрих-кода и теряет их все, пока MessageBox
остается на экране, пока он не осознает, что его внимание требуется и намеренно выбирает один из двух вариантов.
Нет, вы можете достаточно быстро написать собственное сообщение коробка. Встроенный блок сообщений - это ограниченный инструмент, предназначенный для быстрого удобства, но в нем нет всего. –
вам нужно создать свое собственное окно сообщений и убедиться, что оно является Модальным .. так, чтобы он оставался на переднем крае, если это окна .. то это то, что можно сделать довольно легко .. – MethodMan