启动WinForm窗体时触发System.ArgumentNullException(item参数为空)如何解决?
修复System.ArgumentNullException: 'Value cannot be null. (Parameter 'item')'错误
错误原因
你在ZenderArray方法中创建了长度为100的字符串数组,但仅对前3个元素赋值,剩余97个元素默认值为null。当循环遍历整个数组并向LbZenders(ListBox)添加元素时,添加null项会触发该异常——ListBox不允许插入null值。
修复方案
提供三种可行的修复方式,按需选择:
方案1:缩短数组长度,仅定义所需元素
直接初始化包含有效频道的数组,避免出现null元素:
void ZenderArray() { string[] Zenders = new string[] { "NPO1", "NPO2", "NPO3" }; LbZenders.Items.Clear(); foreach (string zender in Zenders) { LbZenders.Items.Add(zender); } }
方案2:循环中过滤null元素
保留原数组长度,但添加元素前判断是否为null,只插入有效内容:
void ZenderArray() { string[] Zenders = new string[100]; Zenders[0] = "NPO1"; Zenders[1] = "NPO2"; Zenders[2] = "NPO3"; LbZenders.Items.Clear(); for(int i= 0; i < Zenders.Length; i++) { if (Zenders[i] != null) { LbZenders.Items.Add(Zenders[i]); } } }
方案3:使用List存储频道(更灵活)
用泛型列表替代数组,动态添加有效频道,避免null问题:
void ZenderArray() { List<string> Zenders = new List<string> { "NPO1", "NPO2", "NPO3" }; LbZenders.Items.Clear(); LbZenders.Items.AddRange(Zenders.ToArray()); }
内容的提问来源于stack exchange,提问作者big coding monkey
相关产品推荐
相关产品推荐

