InvalidArgument=';的值;2';对于';索引';.尝试单独键入字符时
本文关键字:单独键 字符 对于 的值 InvalidArgument 索引 | 更新日期: 2023-09-27 18:20:21
我正在尝试键入一个每个字符之间都有小空格的字符串。
然后我用这个我得到一个错误:InvalidArgument=Value of '2' is not valid for 'index'.
行:if (currentChar == lbMessage.Items[tickCount].ToString().Length)
我对文本框做了类似的处理,但我不能对ListBox做。
private void Space(object sender, EventArgs e)
{
if (tickCount < lbMessage.Items.Count)
{
SendKeys.Send(lbMessage.Items[tickCount].ToString().Substring(currentChar++, 0));
tickCount++;
if (currentChar == lbMessage.Items[tickCount].ToString().Length)
{
tmrSpace.Enabled = false;
SendKeys.Send("{enter}");
}
if (tickCount >= lbMessage.Items.Count) tickCount = 0;
}
tmrSpace.Interval = random.Next(50, 100);
}
这适用于文本框字段:
private void Space(object sender, EventArgs e)
{
SendKeys.Send(txtText.Text.Substring(b++, 1));
tmrSpace.Interval = random.Next(50, 150);
if (b == txtText.TextLength)
{
tmrSpace.Enabled = false;
SendKeys.Send("{enter}");
}
}
看看这个:
if (tickCount < lbMessage.Items.Count)
{
SendKeys.Send(lbMessage.Items[tickCount] // etc, irrelevant
tickCount++;
if (currentChar == lbMessage.Items[tickCount].ToString().Length)
现在假设tickCount
正是lbMessage.Items.Count - 1
。第一次对其进行索引时,这很好,但随后递增tickCount
并再次索引,此时tickCount
将等于lbMessage.Items.Count
,您将得到该异常。
我不太清楚你的代码(我很累),但你可能想把tickCount
的增量移到代码的后面。。。