Как сделать так, чтобы текстовое поле принимало только цифры?
Привет,
В настоящее время я пишу код для калькулятора, предназначенного для вычисления любого значения физического уравнения с учетом любого другого значения. Хотя эта часть, похоже, работает, и мне удалось включить TryParse в преобразование так, чтобы оно установило любое нечисловое значение равным нулю, мне трудно понять, как предотвратить ввод символов или букв.
Что мне действительно нужно, так это либо код, который отправит сообщение, если символ или буква будут вставлены в текстовое поле, либо текстовое поле, которое откажется принимать ввод, отличный от числового значения.
Кто-нибудь может мне помочь? Любой совет был бы очень признателен.
Ниже приведен пример моего текущего кода.
Спасибо.
Что я уже пробовал:
public partial class Form1 : Form { double P1, P2, V1, V2, U1, U2, v1, v2, h1, h2, Q, W, Z, g; //******************************************************************* public Form1() { InitializeComponent(); Z = 0; P1 = P2 = V1 = V2 = U1 = U2 = v1 = v2 = h1 = h2 = Q = W = Z; g = 9.81; } //******************************************************************* private void txtBox_P2In_TextChanged(object sender, EventArgs e) { double.TryParse(txtBox_P2In.Text, out P2); } //******************************************************************* private void txtBox_P1In_TextChanged(object sender, EventArgs e) { double.TryParse(txtBox_P1In.Text, out P1); } //******************************************************************* private void CalcButton1_Click(object sender, EventArgs e) { if (radioButtonP1.Checked == true) { P1 = (((P2 * V2) + U2 + ((v2 * v2) / 2) + (g * h2) + W - Q - (g * h1) - ((v1 * v1) / 2) - U1) / V1); txtBox_P1Out.Text = P1.ToString(); } else if (radioButtonP1.Checked == false) { txtBox_P1Out.Text = null; } } }
CHill60
Вы обратили внимание на список связанных вопросов справа от вашего вопроса?
[no name]
Держу пари, что есть тысячи результатов поиска google по этому же вопросу....
Member 13068046
Есть, но я новичок в этом деле, и большинство кодовых решений, которые они показывают, сбивают меня с толку. Этот сайт, как правило, хорош для прямых ответов, поэтому я и задал этот вопрос. Плюс ответ, с которым я постоянно сталкиваюсь:
private void txt_P1In_KeyPress(отправитель объекта, KeyPressEventArgs e)
{
е.Обрабатываются = !(Пеструшка.IsDigit(электронная.Ключевой-символ) || электронная.Ключевой-символ == '\б' || е.Ключевой-символ = '.');
}
это не работает в моем коде, и я понятия не имею, почему более простое или объясненное решение было бы предпочтительнее.
Karthik_Mahalingam
убедитесь, что событие сопоставлено с элементом управления
[no name]
Есть много прямых и четко объясненных примеров, которые отвечают на ваш вопрос. И самое бесполезное объяснение проблемы - "не работает". Если вы позвоните своему механику по телефону и скажете: "машина не работает", ожидаете ли вы, что кто-то точно узнает, в чем проблема? Мы не знаем, что, по вашему мнению, означает "не работает" больше, чем ваш механик.
Member 13068046
Извините, но если бы я мог понять, почему код не работает, я бы не просил о помощи, не так ли?
С механиком вы получаете какую-то обратную связь от автомобиля, которую вы можете описать им, что поможет им сузить проблему (например, он издает дребезжащий шум под капотом, он продолжает тормозить, дым выбрасывается из задней части).
Я не могу этого сделать, потому что я даже не могу описать проблему, кроме того, что текстовое поле все еще принимает буквы и символы, и ни одно окно сообщения не появляется в любое время (по сути, это означает, что оно не работает, так как оно не сделало ничего, что я хотел бы сделать).
Под "ясно объясненным" вы подразумеваете ясно объясненное для вас или ясно объясненное для меня, поскольку я действительно считаю, что эта конкретная фразировка несет в себе некоторую субъективность. Но, пожалуйста, если вы знаете сайт, который действительно хорошо и просто объясняет, как закодировать эту конкретную проблему, не стесняйтесь присылать мне ссылку. Таким образом, я могу перестать испытывать трудности с поиском ответа, а вы можете перестать испытывать трудности с размещением антагонистических комментариев на моей странице вопросов.
Надеюсь, это все прояснит.
Спасибо.