Методы форматирования строки в пользовательском контроле - C#

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. Имеется созданный пользовательский элемент - индикатор. При добавлении индикатора на форму и вводе на форме в textbox значения - индикатор отображает это число. Если количество чисел после запятой больше, чем может отобразить индикатор, то производится форматирование (округление).
private void button1_Click(object sender, EventArgs e)
        {
            string value = strFirst;
            string[] words = value.Split(new char[] { ','}, StringSplitOptions.RemoveEmptyEntries);
            if (int.TryParse(words[0], out d1) && double.TryParse(words[1], out d2))
            {
                string a = Convert.ToString(d2);
                string a1 = "," + a;
                d3 = Convert.ToDouble(a1);
                if (numericBefore.Value == 0)
                {
                    s1 = String.Format("{0:d0}", d1);
                    d4 = Convert.ToDouble(s1);
                }
                if (numericBefore.Value == 1)
                {
                    s1 = String.Format("{0:d1}", d1);
                    d4 = Convert.ToDouble(s1);
                }
                if (numericBefore.Value == 2)
                {
                    s1 = String.Format("{0:d2}", d1);
                    d4 = Convert.ToDouble(s1);
                }
                if (numericBefore.Value == 3)
                {
                    s1 = String.Format("{0:d3}", d1);
                    d4 = Convert.ToDouble(s1);
                }
                if (numericAfter.Value == 0)
                {
                    s2 = String.Format("{0:f0}", d3);
                    d5 = Convert.ToDouble(s2);
                }
                if (numericAfter.Value == 1)
                {
                    s2 = String.Format("{0:f1}", d3);
                    d5 = Convert.ToDouble(s2);
                }
                if (numericAfter.Value == 2)
                {
                    s2 = String.Format("{0:f2}", d3);
                    d5 = Convert.ToDouble(s2);
                }
                if (numericAfter.Value == 3)
                {
                    s2 = String.Format("{0:f3}", d3);
                    d5 = Convert.ToDouble(s2);
                }
                if (numericAfter.Value == 4)
                {
                    s2 = String.Format("{0:f4}", d3);
                    d5 = Convert.ToDouble(s2);
                }
                if (numericAfter.Value == 5)
                {
                    s2 = String.Format("{0:f5}", d3);
                    d5 = Convert.ToDouble(s2);
                }
                if (numericAfter.Value == 6)
                {
                    s2 = String.Format("{0:f6}", d3);
                    d5 = Convert.ToDouble(s2);
                }
         }
Все это обрабатывается по клику кнопки на форме. Интересует вопрос, как правильно реализовать метод или свойства элемента, чтобы на форме просто вызывать при форматировании числа сам метод форматирования, а не писать весь обработчик событий. Спасибо

Решение задачи: «Методы форматирования строки в пользовательском контроле»

textual
Листинг программы
private void button1_Click(object sender, EventArgs e)
{
    string value = strFirst;
    string[] words = value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
    if (int.TryParse(words[0], out d1) && double.TryParse(words[1], out d2))
    {
        string a = Convert.ToString(d2);
        string a1 = "," + a;
        d3 = Convert.ToDouble(a1);
        s1 = String.Format("{0:d" + numericBefore.Value.ToString() + "}", d1);
        d4 = Convert.ToDouble(s1);
        s2 = String.Format("{0:f" + numericAfter.Value.ToString() + "}", d3);
        d5 = Convert.ToDouble(s2);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы