我正在做一个订购界面,我在删除时陷入困境。
在开始时,我将点击“添加到订单”按钮,该按钮将食品价格和数量相乘,然后存储到数组中。
private int c = 0;
private decimal[] ordersarray = new decimal[10];
List<decimal> items = new List<decimal>();
private void fconfirmbutton_Click(object sender, EventArgs e)
{
int fquantity;
if (int.TryParse(fquantitytextbox.Text, out fquantity))
{
fquantity = int.Parse(fquantitytextbox.Text);
if (fquantity.ToString() != "" + 0)
{
decimal mulxprice, quan, total;
mulxprice = decimal.Parse(fpricetextbox.Text);
quan = int.Parse(fquantitytextbox.Text);
total = mulxprice * quan;
cartlistbox.Items.Add(foodnametextbox.Text + " x" + quan.ToString() + " ($" + total.ToString() + ") ");
subtotalbox.Text = total.ToString();
decimal b;
try
{
if (decimal.TryParse(subtotalbox.Text, out b))
{
ordersarray[c] = b;
c++;
subtotalbox.Text = "";
}
}
catch
{
MessageBox.Show("Sorry, the order system can only takes up to 10 orders at a time only.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
fquantitytextbox.Clear();
fquantitytextbox.Focus();
}
将其存储到cartlistbox和ordersarray后,我尝试使用以下命令将其删除:
编辑:
private void deletebutton_Click(object sender, EventArgs e)
{
try
{
if (this.cartlistbox.SelectedIndex >= 0)
{
cartlistbox.Items.Remove(cartlistbox.SelectedItem);
cartlistbox.Refresh();
}
else
{
MessageBox.Show("Error, please select an item to delete.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
例如,我可能会订购2件商品,例如:
因此我尝试删除项目'b',方法是从列表框中选择它并单击“删除”按钮,但它始终以“索引超出数组范围”结束。 所以我明白,这是在完全删除数组值后崩溃的数组,但我不知道如何。
对不起,因为这可能令人困惑,但我希望你明白我可能需要什么。答案 0 :(得分:-3)
尝试改变这一点:
cartlistbox.Items.Remove(cartlistbox.SelectedItem);
到此:
cartlistbox.Items.Remove(cartlistbox.SelectedIndex);