You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# WinForm中如何通过按钮删除二维数组指定行

C# WinForm 二维数组指定行删除实现

实现思路

C#固定长度二维数组不支持直接删除元素,在不使用List<>、网格控件的前提下,通过数据前移覆盖的方式实现删除效果,流程如下:

  • 校验输入:先判断用户输入的行号是否为合法整数,再校验行号是否落在已存数据的有效区间内,非法输入直接弹出警告
  • 覆盖数据:从待删除行位置开始,将后续每一行的所有列数据逐列复制到前一行,完成数据前移,同时修正行号保证序号连续
  • 清理尾部:将数组最后一条冗余的旧数据清空,同步更新有效数据的行计数
  • 刷新界面:重新遍历数组渲染列表、计算总金额,和新增数据的展示规则保持一致

补全的button2点击事件代码

private void button2_Click(object sender, EventArgs e)
{
    int deleteRowIndex;
    // 校验输入是否为合法整数,此处textBox6为接收行号输入的文本框,按你实际控件名替换即可
    if (!int.TryParse(textBox6.Text.Trim(), out deleteRowIndex))
    {
        MessageBox.Show("请输入有效的数字行号", "输入错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        textBox6.Focus();
        return;
    }

    // 校验行号是否存在:有效行下标范围为0 ~ pos-1
    if (deleteRowIndex < 0 || deleteRowIndex >= pos)
    {
        MessageBox.Show("指定行不存在,请输入正确的行号", "操作失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        textBox6.Focus();
        return;
    }

    // 逐行前移,覆盖待删除行
    for (int i = deleteRowIndex; i < pos - 1; i++)
    {
        for (int col = 0; col < 5; col++)
        {
            sales[i, col] = sales[i + 1, col];
        }
        // 重写当前行号,保证序号连续
        sales[i, 0] = i.ToString();
    }

    // 清空尾部冗余数据,更新有效行计数
    for (int col = 0; col < 5; col++)
    {
        sales[pos - 1, col] = null;
    }
    pos--;

    // 刷新列表展示和总金额
    textBox5.Clear();
    double total = 0;
    for (int i = 0; i < sales.GetLength(0); i++)
    {
        // 只渲染有数据的行,避免空行
        if (sales[i, 0] == null) continue;
        textBox5.Text += $"{sales[i,0]}      {sales[i,1]}      {sales[i,2]}      {sales[i,3]}      {sales[i,4]}\r\n";
        if (sales[i,4] != null)
        {
            total += double.Parse(sales[i,4]);
        }
    }
    textBox4.Text = total.ToString();

    // 清空输入框,聚焦等待下次输入
    textBox6.Clear();
    textBox6.Focus();
}

说明

  • 代码中默认接收行号输入的控件名为textBox6,如果你的项目中行号输入框命名不同,直接替换为对应控件ID即可
  • 原新增逻辑计算总金额时使用int.Parse转换金额,会丢失小数精度,上述代码改为double.Parse适配小数金额场景,如果你的业务无小数金额需求,可直接改回原写法
  • 删除操作后会自动重排行号,不会出现序号断层,展示逻辑和新增数据时完全一致

内容的提问来源于stack exchange,提问作者Erasmo Juarez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 17:01:04