Member 14085559 Ответов: 1

Как создать калькулятор среднего использования с помощью VS 2016?


как создать калькулятор среднего использования с помощью VS 2016 без кнопки,
у меня есть четыре текстовых поля.
текстовое поле 1 будет 1-й купюрой.
текстовое поле 2 будет 2-м законопроектом.
текстовое поле 3 будет 3-й купюрой.
текстовое поле 4 будет 4-м законопроектом.

и я хочу,чтобы он был рассчитан как ежедневный, двухнедельный и еженедельный.
так что разные решения для каждого текстового поля.
ежедневный.
еженедельно.
двухнедельный.

если ежедневно. итого будет разделено на 365,
а если еженедельно, то общая сумма будет разделена на 56,
и,наконец, если раз в две недели, общая сумма будет разделена на 26.
Спасибо!

Что я уже пробовал:

частная dailyaverage_TextChanged недействительным(объект отправителя, EventArgs в электронной)
{

int intbill1 = конвертировать.ToInt32(bill1.Text);
int intbill2 = конвертировать.ToInt32(bill2.Text);
int intbill3 = конвертировать.ToInt32(bill3.Text);
int intbill4 = конвертировать.ToInt32(bill4.Text);
int intaverage = (intbill1 + intbill2 + intbill3 + intbill4) / 365;
int intfortnight = (intbill1 + intbill2 + intbill3 + intbill4) / 26;
int intweekly = (intbill1 + intbill2 + intbill3 + intbill4) / 52;

string average = конвертировать.Метод toString(intaverage);
строка еженедельно = конвертировать.Метод toString(intweekly);
строка две недели = конвертировать.Метод toString(intfortnight);
ежедневный отдых.Текст = среднее значение;
недельный отпуск.Текст = еженедельно;
фортнайтлявэридж.Текст = две недели;

если (билл1.Текст == "")
{
билл1.Текст = ("0");

}
если (билл2.Текст == "")
{
билл2.Текст = ("0");
}
если (bill3.Текст == "")
{
bill3.Текст = ("0");
}
если (билл4.Текст == "")
{
билл4.Текст = ("0");
}

1 Ответов

Рейтинг:
2

OriginalGriff

Во - первых, всегда отмечайте разумно-это означает, что люди, которые знают предмет, ответят. "Visual-studio" и VS2016" не имеют значения - вам нужно пометить язык, в данном случае "C#".

Во-вторых, никогда не используйте Convert для пользовательского ввода: пользователи делают ошибки, и Convert будет throiw исключение с приведет к сбою вашего приложения, когда они это сделают.
Вместо этого используйте TryParse:

int iBill1;
if (!int.Tryparse(bill1.Text, out iBill1))
   {
   ... report problem to user ...
   return;
   }
int iBill2;
if (!int.Tryparse(bill2.Text, out iBill2))
   {
   ... report problem to user ...
   return;
   }
...
int datilyAverage = (iBill1 + iBill2 + iBill3 + iBill4) / 365;
...

Но ... не обновляйте dailyaverage.Текст внутри события dailyaverage TextChanged! Если вы это сделаете, вы немедленно получите другое событие TextChanged - потому что вы только что изменили его - и вы установите новое значение в текстовом поле, которое вызовет другое событие TextChanged, которое...

Вероятно, то, что вы хотите сделать, - это выполнить этот код всякий раз, когда меняется одно из ваших текстовых полей billX, а не когда меняется dailyaverage!

И если вы это сделаете, просто установите dailyaverage.Текст на "--waiting--" при обнаружении ошибки, чтобы пользователь не получал кучу сообщений во время набора текста!


Member 14085559

Спасибо! я попробовал этот код, но он не работал.

OriginalGriff

Всегда пожалуйста!