Nano Hash - криптовалюты, майнинг, программирование

Как вычесть значение из 2 текстовых полей и сохранить значение во втором текстовом поле?

У меня есть проект, в котором у меня есть такие поля, как цена, количество, общая сумма, уплаченная сумма, ожидающая сумма и сумма кредита. Теперь расчет общей суммы выполняется с помощью оператора умножения. Теперь, когда пользователь вводит оплаченную сумму, происходит следующий расчет: Общая сумма - Оплаченная сумма = Ожидаемая сумма.

Предположим, что общая сумма равна 40, а оплаченная сумма равна 20, поэтому в ожидании будет 20. Через несколько дней оставшаяся сумма кредита будет зачислена, поэтому она будет равна 20, поэтому расчет, который я сейчас пытался выполнить, - это ожидающая сумма - сумма кредита = ожидающая сумма. Таким образом, окончательная сумма должна быть равна 0. Ниже приведен скриншот внешнего интерфейса:

введите здесь описание изображения

Я попробовал следующий код со своей стороны, но поле ожидающей суммы не достигает 0 или оставшейся суммы. Ниже приведен мой код:

    private void Price_TextChanged(object sender, TextChangedEventArgs e)
    {
        Multiply();
    }
    private void Quantity_TextChanged(object sender, TextChangedEventArgs e)
    {
        Multiply();
    }
    public void Multiply()
    {
        int a, b;
        bool isAValid = int.TryParse(txtprice.Text, out a);
        bool isBValid = int.TryParse(txtquantity.Text, out b);
        if (isAValid && isBValid)
        {
            txttotalamount.Text = (a * b).ToString();
        }
        else
        {
            txttotalamount.Text = "Invalid Input";
        }
    }

    private void TotalAmount_TextChanged(object sender, TextChangedEventArgs e)
    {
        Subtract();
    }

    private void PaidAmount_TextChanged(object sender, TextChangedEventArgs e)
    {
        Subtract();
    }
    private void PendingAmount_TextChanged(object sender, TextChangedEventArgs e)
    {
        Subtract();
    }

    private void txtcreditamountpaid_TextChanged(object sender, TextChangedEventArgs e)
    {
        Subtract();
    }
    public void Subtract()
    {
        int a, b,c,d;
        bool isAValid = int.TryParse(txttotalamount.Text, out a);
        bool isBValid = int.TryParse(txtpaidamount.Text, out b);
        bool isCValid = int.TryParse(txtpendingamount.Text,out c);
        bool isDValid = int.TryParse(txtcreditamountpaid.Text, out d);
        if (isAValid && isBValid)
        {
            string e = (a - b).ToString();
            txtpendingamount.Text = (e).ToString();
        }
        else if (isCValid && isDValid)
        {
            string f=(c-d).ToString();
            txtpendingamount.Text = (f).ToString();
        }  
        else
        {
            txtpendingamount.Text = "invalid Input";
        }
    }

}

Я ожидаю, что вывод в поле ожидающей суммы будет равен 0 или оставшейся сумме, введенной в поле суммы кредита. Я пробовал от себя, но это не работает!


  • ...не работает... - эта информация не очень полезна. В нем не сказано, что именно не сработало, т. е. получали ли вы где-либо сообщения об ошибках, пытались ли вы отладить проблему, чтобы убедиться, что она действительно делает то, что предполагалось. 01.02.2019
  • выглядит как чья-то домашняя работа для меня: \ Вы пытались отладить? 01.02.2019
  • Это проблема. Я не получаю исключение или ошибку. Я пытался отладить свою программу. Поток правильный, но мой вопрос в том, что мне нужно сделать, чтобы я мог получить нулевую или оставшуюся сумму в поле ожидающей суммы после ввода суммы кредита @JohnB 01.02.2019
  • Джон спрашивает, что означает its not working!. Что происходит, когда вы вводите значение в txtcreditamountpaid значение? Что выводится в txtpendingamount? 01.02.2019
  • Я разместил скриншот выше.... Когда вводится сумма кредита, расчет не производится, сумма остается неизменной в ожидающей сумме @vasily.sib 01.02.2019
  • и вы проверили, что ваш метод Subtract() вызывается (срабатывает точка останова), когда вы вводите значение в txtcreditamountpaid? 01.02.2019
  • Связаны ли Price_TextChanged и Quantity_TextChanged? 01.02.2019
  • Извините, я новичок и не очень разбираюсь в этом @vasily.sib 01.02.2019
  • Я использовал их для умножения и показываю их в общей сумме @CodePope 01.02.2019
  • Я знаю, что @RaoRajnish вы используете их для умножения, но они должны быть привязаны к событию TextChanged элемента управления, иначе они не вызываются. Так они обрабатываются контролем? 01.02.2019
  • Да, они ограничены @CodePope 01.02.2019
  • установите точку останова в начале Subtract() отладки вашего приложения и посмотрите, не попало ли оно в эту точку останова. Если нет - вы не привязали TextChanged события txtcreditamountpaid к обработчику txtcreditamountpaid_TextChanged. 01.02.2019

Ответы:


1
private void txtcreditamountpaid_TextChanged(object sender, TextChangedEventArgs e)
    {
        Subtract(true);
    }
    public void Subtract(bool isCreditAmount = false)
    {
        int a, b,c,d;
        bool isAValid = int.TryParse(txttotalamount.Text, out a);
        bool isBValid = int.TryParse(txtpaidamount.Text, out b);
        bool isCValid = int.TryParse(txtpendingamount.Text,out c);
        bool isDValid = int.TryParse(txtcreditamountpaid.Text, out d);
        if (isAValid && isBValid && !isCreditAmount)
        {
            string e = (a - b).ToString();
            txtpendingamount.Text = (e).ToString();
        }
        else if (isCValid && isDValid)
        {
            string f=(c-d).ToString();
            txtpendingamount.Text = (f).ToString();
        }  
        else
        {
            txtpendingamount.Text = "invalid Input";
        }
    }

Измените свой код следующим образом. Это будет работать.

01.02.2019
  • Извините, но я попробовал это, но все еще не работает :( ! @ganeshkumar 01.02.2019
  • Нет, @RaoRajnish. Должно быть, это работа. Проверьте свой код. Вы должны изменить только эти строки. Вычесть (истина); public void Вычтите (bool isCreditAmount = false) и если (isAValid && isBValid && !isCreditAmount) После того, как вы введете сумму кредита и выйдете из этого поля, это сработает. Проверьте еще раз, пожалуйста. 01.02.2019
  • Извините, но я только что внес изменения, а также просто скопировал и вставил ваш код и заменил свой код @ganeshkumar 01.02.2019

  • 2

    Попробуйте следующий код для метода вычитания:

    public void Subtract()
        {
            int a, b,c,d;
            bool isAValid = int.TryParse(txttotalamount.Text, out a);
            bool isBValid = int.TryParse(txtpaidamount.Text, out b);
    
            if (isAValid && isBValid)
            {
                string e = (a - b).ToString();
                txtpendingamount.Text = (e).ToString();
            }
    
     bool isCValid = int.TryParse(txtpendingamount.Text,out c);
            bool isDValid = int.TryParse(txtcreditamountpaid.Text, out d);
    
            if (isCValid && isDValid)
            {
                string f=(c-d).ToString();
                txtpendingamount.Text = (f).ToString();
            }  
            else
            {
                txtpendingamount.Text = "invalid Input";
            }
        }
    
    01.02.2019
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..