вернуться на главную после оплаты - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть система POS для фастфуда, созданная на C # и SQL Server.после того, как процесс оплаты покажет мне окно «Заказ успешно оплачен», после нажатия на кнопку «ОК» снова вернитесь в форму ProductsReceiptPreview, я хочу после процесса оплаты перейти на главную форму.это мой код .......


       private void lblPayments_Click(object sender, EventArgs e)
    {

            if (pnlPayments.Height != lbl.Height)
            {
                pnlPayments.Height = lbl.Height;
                btnDone.Text = "DONE";
                lbl.Text = "RECEIPT";
                btnDone.Image = Resources.done;
                Data.Show();
            }
            else
            {
                pnlPayments.Height = 394;
                btnDone.Text = "RECEIPT";
                lbl.Text = "AMOUNT";
                btnDone.Image = Resources.receipt;
                Data.Hide();
            }


    }

    private void Touch_Click(object sender, EventArgs e)
    {
        var btn = (Button)sender;
        txtCashReceived.Text += btn.Text;
    }

    private void btnClear_Click(object sender, EventArgs e)
    {
     if(txtCashReceived.Text.Length >0)   txtCashReceived.Text = 
     txtCashReceived.Text.Remove(txtCashReceived.Text.Length - 1);
    }


    double totalBill = 0;
    private void btnPay_Click(object sender, EventArgs e)
    {

        if (txtCashReceived.Text.Length > 0 && totalBill <= 
    Convert.ToInt32(txtCashReceived.Text) && Data.RowCount > 0)
        {
            int i = 0;
            foreach (var rep in ListReports)
            {
                i++;
                var report = new ModelReports();
                report.Productname = rep.Productname;
                report.TotalSales = rep.TotalSales;
                report.TotalTransactions = rep.TotalTransactions;
                report.Save();


            }

            var rpd = new ProductsReceiptPreview(dataReceiptBindingSource, 
            txtTotal.Text, txtCashReceived.Text, txtChange.Text);
            rpd.ShowDialog();
            if (i == ListReports.Count)
            {
                MessageBox.Show("Order Successfully Paid");
            }
            pnlProducts.Controls.Clear();
            pnlCategoryPanel.Visible = false;
            dataReceiptBindingSource.Clear();
            LoadTables();
            btnDone.PerformClick();
        }
        else
        {
            MessageBox.Show("Please pay your order.");
            txtCashReceived.Text = "0";

        }
    }

    private void btnPay_Click_1(object sender, EventArgs e)
    {


        if (txtCashReceived.Text.Length > 0 && totalBill <= 
        Convert.ToInt32(txtCashReceived.Text) && Data.RowCount > 0)
        {
            int i = 0;
            foreach (var rep in ListReports)
            {
                i++;
                var report = new ModelReports();
                report.Productname = rep.Productname;
                report.TotalSales = rep.TotalSales;
                report.TotalTransactions = rep.TotalTransactions;
                report.Save();


            }
            if (i == ListReports.Count)
            {
                MessageBox.Show("Order Successfully Paid");
                txtCashReceived.Text = "0";
            }
            pnlProducts.Controls.Clear();
            pnlCategoryPanel.Visible = false;
            dataReceiptBindingSource.Clear();
            LoadTables();
            btnDone.PerformClick();
        }
        else
        {
            MessageBox.Show("Please pay your order.");
        }
    }

1 Ответ

0 голосов
/ 13 февраля 2019

Если вы позвоните по какому-либо коду из основного, он вернется к основному по окончании вызова.В случае формы она обрабатывается в другом потоке, который начинается с main.В этом контексте поток никогда не вернется к основному.Если вы используете событие click для выполнения какого-либо действия и хотите вызвать другой код, когда это произойдет, то вам необходимо перестроить инфраструктуру.Изучите принципы разработки SOLID и внедрение зависимостей.https://www.codeproject.com/Tips/1033646/SOLID-Principle-with-Csharp-Example https://simpleinjector.readthedocs.io/en/latest/windowsformsintegration.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...