列表框不删除 c# GUI 中的值

Listbox not removing values in c# GUI

用户基本上是将一些十六进制值输入到文本框中,以逗号分隔,例如。 AA、1B、FF。这些然后显示在列表框框中。如果文本框中的十六进制值的数量超过了用户定义的要传输的大小,则列表框仅显示该值的数量,或者如果要传输的大小更大,则将零值添加到列表框。

在您输入一个前面带有零的值(例如 AA、BB、CC、DD、EE、0F)之前,此方法工作正常,如果 sizeToTransfer = 2,则列表框应显示 0xAA 和 0xBB。但它只会删除 0F 值?

我是编程新手,所以很明显我缺少任何帮助,我们将不胜感激。

        private void WriteSPI1_Click(object sender, EventArgs e)
        {   
        string hexstring = textbox1.Text;

        HexValues.Items.Clear();   

        string[] hexarray = hexstring.Split((",\r\n".ToCharArray()), StringSplitOptions.RemoveEmptyEntries);
        byte[] hexbytes = new byte[hexarray.Length]; 

        uint num = Convert.ToUInt32(hexarray.Length);

                    for (int j = 0; j < hexarray.Length; j++)
                    {
                        hexbytes[j] = Convert.ToByte(hexarray[j], 16);
                        Hexlist.Add(hexbytes[j]);
                        writebuff = Hexlist.ToArray();
                        x =  writebuff[j].ToString("X2");
                        HexValues.Items.Add("0x" + x); 
                    }

                    if (hexarray.Length > sizeToTransfer)
                    {
                        diff = num - sizeToTransfer;

                        for (i = 0; i < diff+1; i++)
                        {
                            HexValues.Items.Remove("0x" + x);
                        }
                    }
                    else
                    {
                        diff = sizeToTransfer - num;

                        for (i = 0; i < diff; i++)
                        {
                            HexValues.Items.Add("0x00");
                        }
                    }
         }

更改

for (int j = 0; j < sizeToTransfer; j++)
{
    hexbytes[j] = Convert.ToByte(hexarray[j], 16);
    Hexlist.Add(hexbytes[j]);
    writebuff = Hexlist.ToArray();
    x =  writebuff[j].ToString("X2");
    HexValues.Items.Add("0x" + x); 
}

for (int j = 0; j < hexarray.Length; j++)
{
    hexbytes[j] = Convert.ToByte(hexarray[j], 16);
    Hexlist.Add(hexbytes[j]);
    writebuff = Hexlist.ToArray();
    x =  writebuff[j].ToString("X2");
    HexValues.Items.Add("0x" + x); 
}

并删除后面的 if 语句