ikif
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору День добрый, Задача такая: Есть 2 поля для чисел ( одно в вольтах , второе в дБ) Меня одно из полей , другое должно обновляться соответственно. В тот момент как прописываю что то , то в 'sender' находиться то что было внутри , а в 'е' то что было нажато. Не во всех ситуациях это работает правильно ..... Например : было написано в клетке 2, я обвел это число и хочу написать 1, то получим 21. Код: private void Amplitude_box_KeyPress(object sender, KeyPressEventArgs e) { if (!(Char.IsDigit(e.KeyChar)) && !((e.KeyChar == '.') && (Amplitude_box.Text.IndexOf(".") == -1) && (Amplitude_box.Text.Length != 0))) if (e.KeyChar != (char)Keys.Back) e.Handled = true; if (Char.IsDigit(e.KeyChar)) { double Nom = Convert.ToDouble(((TextBox)sender).Text + e.KeyChar.ToString()); if (Nom > 2) { Nom = 2; Amplitude_box.Text = "2"; } else if (Nom < 0) { Nom = 0; Amplitude_box.Text = "0"; } double attStart = Math.Log10(2d / (double)Nom); attStart = Math.Round(20 * attStart, 2); Atten_box.Text = attStart.ToString(); } } private void Atten_box_KeyPress(object sender, KeyPressEventArgs e) { if (!(Char.IsDigit(e.KeyChar)) && !((e.KeyChar == '.') && (Atten_box.Text.IndexOf(".") == -1) && (Atten_box.Text.Length != 0))) if (e.KeyChar != (char)Keys.Back) e.Handled = true; //if (e.KeyChar == (char)Keys.Enter) { double Nom1 = -1 * Convert.ToDouble(((TextBox)sender).Text); double attStart = Math.Round(Math.Pow(10, Nom1 / 20) * 2, 2); Amplitude_box.Text = attStart.ToString(); } } | Как тут можно нормально вставить код на форуме ? Заранее благодарен. |