private void DeleteRow(object sender, EventArgs e) { PictureBox pb = (PictureBox)sender; int rowIndex = Convert.ToInt32(pb.Tag); basketTableLayoutPanel.SuspendLayout(); // delete all controls of row that we want to delete for (int i = 0; i < basketTableLayoutPanel.ColumnCount; i++) { var control = basketTableLayoutPanel.GetControlFromPosition(i, rowIndex); basketTableLayoutPanel.Controls.Remove(control); } // move up row controls that comes after row we want to remove for (int i = rowIndex + 1; i < basketTableLayoutPanel.RowCount; i++) { for (int j = 0; j < basketTableLayoutPanel.ColumnCount; j++) { var control = basketTableLayoutPanel.GetControlFromPosition(j, i); if (control != null) { basketTableLayoutPanel.SetRow(control, i - 1); if (j > 1) { control.Tag = i - 1; } } } } var removeStyle = basketTableLayoutPanel.RowCount - 1; if (basketTableLayoutPanel.RowStyles.Count > removeStyle) { basketTableLayoutPanel.RowStyles.RemoveAt(removeStyle); } basketTableLayoutPanel.RowCount--; totalPrice = totalPrice - (float.Parse(Basket_list[rowIndex - 1][3]) * int.Parse(Basket_list[rowIndex - 1][5])); totalPricelabel.Text = "Total Price: " + totalPrice + " €"; Basket_list.RemoveAt(rowIndex - 1); if (basketTableLayoutPanel.RowCount == 1) { basketTableLayoutPanel.Visible = false; noItemsLabel.Visible = true; totalPricelabel.Text = "Total Price: 0 €"; } basketTableLayoutPanel.ResumeLayout(); }
private void checkQuantity(object sender, EventArgs e) { NumericUpDown quant = (NumericUpDown)sender; int row = Convert.ToInt32(quant.Tag); if (quant.Value > int.Parse(Basket_list[row - 1][4])) { basketTableLayoutPanel.GetControlFromPosition(2, row).BackColor = Color.Red; } else { basketTableLayoutPanel.GetControlFromPosition(2, row).BackColor = Color.White; } if (Convert.ToInt32(quant.Value) == 0) { basketTableLayoutPanel.SuspendLayout(); // delete all controls of row that we want to delete for (int i = 0; i < basketTableLayoutPanel.ColumnCount; i++) { var control = basketTableLayoutPanel.GetControlFromPosition(i, row); basketTableLayoutPanel.Controls.Remove(control); } // move up row controls that comes after row we want to remove for (int i = row + 1; i < basketTableLayoutPanel.RowCount; i++) { for (int j = 0; j < basketTableLayoutPanel.ColumnCount; j++) { var control = basketTableLayoutPanel.GetControlFromPosition(j, i); if (control != null) { basketTableLayoutPanel.SetRow(control, i - 1); if (j > 1) { control.Tag = i - 1; } } } } var removeStyle = basketTableLayoutPanel.RowCount - 1; if (basketTableLayoutPanel.RowStyles.Count > removeStyle) { basketTableLayoutPanel.RowStyles.RemoveAt(removeStyle); } basketTableLayoutPanel.RowCount--; totalPrice = totalPrice - (float.Parse(Basket_list[row - 1][3]) * int.Parse(Basket_list[row - 1][5])); totalPricelabel.Text = "Total Price: " + totalPrice + " €"; Basket_list.RemoveAt(row - 1); if (basketTableLayoutPanel.RowCount == 1) { basketTableLayoutPanel.Visible = false; noItemsLabel.Visible = true; totalPricelabel.Text = "Total Price: 0 €"; } basketTableLayoutPanel.ResumeLayout(); } else if (quant.Value > int.Parse(Basket_list[row - 1][5])) { totalPrice += float.Parse(Basket_list[row - 1][3]); Basket_list[row - 1][5] = quant.Value.ToString(); totalPricelabel.Text = "Total Price: " + totalPrice + " €"; } else if (quant.Value < int.Parse(Basket_list[row - 1][5])) { totalPrice -= float.Parse(Basket_list[row - 1][3]); Basket_list[row - 1][5] = quant.Value.ToString(); totalPricelabel.Text = "Total Price: " + totalPrice + " €"; } }