![](/img/trans.png)
[英]InvalidArgument=Value of'3' is not valid for 'index'. parameter name: index
[英]InvalidArgument=Value of '-1' is not valid for 'index'. Parameter name: index
我收到“InvalidArgument=Value of '-1' 对 'index' 无效。参数名称:index”。 我不知道我搞砸了哪一部分。
private void bankerCard_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
Brush myBrush = Brushes.Black;
if (bankerCard.Items[e.Index].ToString().Contains("♥"))
myBrush = Brushes.Red;
else if (bankerCard.Items[e.Index].ToString().Contains("♦"))
myBrush = Brushes.Red;
else
myBrush = Brushes.Black;
e.Graphics.DrawString(((ListBox)sender).Items[e.Index].ToString(),
e.Font, myBrush, e.Bounds, StringFormat.GenericDefault);
e.DrawFocusRectangle();
}
以上代码测试,没问题。 问题发生在下面。 任何线索?
private void playerCard_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
Brush myBrush = Brushes.Black;
switch (e.Index)
{
case 0:
myBrush = Brushes.Red;
break;
case 1:
myBrush = Brushes.Orange;
break;
case 2:
myBrush = Brushes.Purple;
break;
}
e.Graphics.DrawString(((ListBox)sender).Items[e.Index].ToString(),
e.Font, myBrush, e.Bounds, StringFormat.GenericDefault); `error over here`
e.DrawFocusRectangle();
}
错误是不言自明的,可能在这里e.Index
值为-1
并且您正在尝试访问(ListBox)sender).Items[-1]
((ListBox)sender).Items[e.Index].ToString()
要解决此问题,您可以添加一个 if 语句来检查索引是否大于 -1:
if(e.Index >= 0)
{
e.Graphics.DrawString(((ListBox)sender).Items[e.Index].ToString(),
e.Font, myBrush, e.Bounds, StringFormat.GenericDefault)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.