Перенос фокуса - C#
Формулировка задачи:
Ребят, подскажите пожалуйста, всю голову переломал.
С инета скачал исходник с простой программкой: в textbox вводится запись, жмем enter и фокус переносится на кнопку.
Так вот я этот код скопировал в свою программу, все 1 в 1 и даже элементы на форме теже, а вот при нажатии на enter фокус не переносится, почему так?
Решение задачи: «Перенос фокуса»
textual
Листинг программы
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; //using System.Globalization; // System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator namespace m2k { public partial class Form1 : Form { public Form1() { InitializeComponent(); } // нажатие клавиши в поле редактирования private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { // Правильными символами считаются цифры, // запятая, <Enter> и <Backspace>. // Будем считатьать правильным символом // также точку, на заменим ее запятой. // Остальные символы запрещены. // Чтобы запрещенный символ не отображался // в поле редактирования,присвоим // значение true свойству Handled параметра e if ((e.KeyChar >= '0') && (e.KeyChar <= '9')) { // цифра return; } if (e.KeyChar == '.') { // точку заменим запятой e.KeyChar = ','; } if (e.KeyChar == ',') { if (textBox1.Text.IndexOf(',') != -1) { // запятая уже есть в поле редактирования e.Handled = true; } return; } if ( Char.IsControl (e.KeyChar) ) { // <Enter>, <Backspace>, <Esc> if ( e.KeyChar == (char) Keys.Enter) // нажата клавиша <Enter> // установить курсор на кнопку OK button1.Focus(); return; } // остальные символы запрещены e.Handled = true; } // щелчок на кнопке OK private void button1_Click(object sender, EventArgs e) { double mile; // расстояние в миля double km; // расстояние в километрах // Если в поле редактирования нет данных, // то при попытке преобразовать пустую // строку в число возникает исключение. try { mile = Convert.ToDouble(textBox1.Text); km = mile * 1.609344; label2.Text = km.ToString("n") // числовой (numeric) формат + " км."; } catch { // обработка исключения: // переместить курсор в поле редактирования textBox1.Focus(); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д