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

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

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

Добрый вечер. Имеется созданный пользовательский элемент - индикатор. При добавлении индикатора на форму и вводе на форме в textbox значения - индикатор отображает это число. Если количество чисел после запятой больше, чем может отобразить индикатор, то производится форматирование (округление).
Листинг программы
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. string value = strFirst;
  4. string[] words = value.Split(new char[] { ','}, StringSplitOptions.RemoveEmptyEntries);
  5. if (int.TryParse(words[0], out d1) && double.TryParse(words[1], out d2))
  6. {
  7. string a = Convert.ToString(d2);
  8. string a1 = "," + a;
  9. d3 = Convert.ToDouble(a1);
  10. if (numericBefore.Value == 0)
  11. {
  12. s1 = String.Format("{0:d0}", d1);
  13. d4 = Convert.ToDouble(s1);
  14. }
  15. if (numericBefore.Value == 1)
  16. {
  17. s1 = String.Format("{0:d1}", d1);
  18. d4 = Convert.ToDouble(s1);
  19. }
  20. if (numericBefore.Value == 2)
  21. {
  22. s1 = String.Format("{0:d2}", d1);
  23. d4 = Convert.ToDouble(s1);
  24. }
  25. if (numericBefore.Value == 3)
  26. {
  27. s1 = String.Format("{0:d3}", d1);
  28. d4 = Convert.ToDouble(s1);
  29. }
  30. if (numericAfter.Value == 0)
  31. {
  32. s2 = String.Format("{0:f0}", d3);
  33. d5 = Convert.ToDouble(s2);
  34. }
  35. if (numericAfter.Value == 1)
  36. {
  37. s2 = String.Format("{0:f1}", d3);
  38. d5 = Convert.ToDouble(s2);
  39. }
  40. if (numericAfter.Value == 2)
  41. {
  42. s2 = String.Format("{0:f2}", d3);
  43. d5 = Convert.ToDouble(s2);
  44. }
  45. if (numericAfter.Value == 3)
  46. {
  47. s2 = String.Format("{0:f3}", d3);
  48. d5 = Convert.ToDouble(s2);
  49. }
  50. if (numericAfter.Value == 4)
  51. {
  52. s2 = String.Format("{0:f4}", d3);
  53. d5 = Convert.ToDouble(s2);
  54. }
  55. if (numericAfter.Value == 5)
  56. {
  57. s2 = String.Format("{0:f5}", d3);
  58. d5 = Convert.ToDouble(s2);
  59. }
  60. if (numericAfter.Value == 6)
  61. {
  62. s2 = String.Format("{0:f6}", d3);
  63. d5 = Convert.ToDouble(s2);
  64. }
  65. }
Все это обрабатывается по клику кнопки на форме. Интересует вопрос, как правильно реализовать метод или свойства элемента, чтобы на форме просто вызывать при форматировании числа сам метод форматирования, а не писать весь обработчик событий. Спасибо

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

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

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


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

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

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы