Как изменить значение в ячейке datagridview, и это меняет значение в других ячейках той же строки? C# - PullRequest
1 голос
/ 18 января 2020

У меня есть данные gridview, которые содержат 4 столбца цены покупки, прибыль, скидка, цена финала. Если ввести значение в прибыли, оно складывается в цену покупки и показывается в окончательной цене продажи. Скидка работает нормально. Что я пытаюсь сделать, так это то, что я хочу добавить стоимость в окончательной цене продажи, и он должен рассчитывать прибыль или скидку и должен отображаться в соответствующей колонке Можете ли вы проверить, что не так с моим кодом, что я должен сделать, чтобы он работал нормально.

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        if (e.RowIndex != -1 && e.ColumnIndex != -1)
        {
            DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
            if (row.Cells["finalpriceGV"].Value != null && rg.Match(row.Cells["finalpriceGV"].Value.ToString()).Success)
            {
                float buyingprice = Convert.ToSingle(row.Cells["buyingpriceGV"].Value.ToString());
                float fp = Convert.ToSingle(row.Cells["finalpriceGV"].Value.ToString());
                if (fp - buyingprice > 0)
                {
                    row.Cells["profitGV"].Value = null;
                    row.Cells["discountGV"].Value = null;
                    row.Cells["profitGV"].Value = fp - buyingprice;
                }
                else if (fp - buyingprice < 0)
                {
                    row.Cells["profitGV"].Value = null;
                    row.Cells["discountGV"].Value = null;
                    row.Cells["discountGV"].Value = buyingprice - fp;
                }
                row.Cells["finalpriceGV"].Value = fp;
            }
            else
            {
                //fp = finalsellingprice;
            }
            if (row.Cells["profitGV"].Value != null && rg.Match(row.Cells["profitGV"].Value.ToString()).Success)
            {
                float buyingprice = Convert.ToSingle(row.Cells["buyingpriceGV"].Value.ToString());
                float profit = Convert.ToSingle(row.Cells["profitGV"].Value.ToString());
                //float amounttoincrease = profit +buyingprice;
                float finalsellingprice = buyingprice + profit;
                float discount;
                if (row.Cells["discountGV"].Value != null && rg.Match(row.Cells["discountGV"].Value.ToString()).Success)
                {
                    discount = Convert.ToSingle(row.Cells["discountGV"].Value.ToString());
                }
                else
                {
                    discount = 0;
                }
                row.Cells["finalpriceGV"].Value = finalsellingprice - discount;



            }
            else
            {
                row.Cells["finalpriceGV"].Value = null;
                row.Cells["discountGV"].Value = null;
                row.Cells["profitGV"].Value = null;
            }


        }
    }
...