我的项目运行正常,然后突然我得到了索引超出范围的异常,而没有进行任何更改。我不知道发生了什么,但是我能够将数据添加到数组,但是现在我无法将数据添加到数组。
我试图更改周围的数字以更改数组,但是没有解决方案。我确实将代码的旧版本替换了,然后错误消失了,然后在几次测试我的程序后突然返回错误。
Dictionary<string, string> dictColorSettings = new Dictionary<string, string>();
StreamReader srColorSettings = new StreamReader("ColorSettings.txt");
string[] strColorData;
for (int c = 1; c <= 12; c++)
{
strColorData = srColorSettings.ReadLine().Split('|');
dictColorSettings.Add(strColorData[0], strColorData[1]);
}
srColorSettings.Close();
int buttonNum = 0;
foreach (KeyValuePair<string, string> kvp in dictColorSettings)
{
string colorCode = kvp.Value;
Color clrBarColor = Color.Black;
try
{
int argb = Int32.Parse(colorCode.Replace("#", ""), System.Globalization.NumberStyles.HexNumber);
clrBarColor = Color.FromArgb(argb);
}
catch (System.Exception excp)
{
}
Controls[kvp.Key].BackColor = clrBarColor;
if (buttonNum == 10)
{
Controls["btnColorButtonMinus"].ForeColor = clrBarColor;
}
else if (buttonNum == 11)
{
Controls["btnColorButtonPlus"].ForeColor = clrBarColor;
}
else
{
Controls["btnColorButton" + (buttonNum).ToString()].ForeColor = clrBarColor;
}
++buttonNum;
}
给出错误的行是“ dictColorSettings.Add(strColorData [0],strColorData [1]);”。这是一种奇怪的情况,因为以前从来没有给我一个错误,而现在却没有。