Значение "1" недопустимо для "индекса"
Это ошибка, которую я получаю, когда пытаюсь запустить свою программу. (Извините Minecraft на заднем плане, это ключевая часть того, что я пытаюсь создать)
Вот код C#, который я пытался выполнить
int oldCount;
string RecentPlayer;
string val;
public void SetBalloonTip()
{
NewPlayerMessage.BalloonTipTitle = "A Player Has Joined!";
NewPlayerMessage.BalloonTipText = RecentPlayer + " has joined your server " + ConfigKey.ServerName.GetString();
NewPlayerMessage.BalloonTipIcon = ToolTipIcon.Info;
}
private void PlayerListUpdates_Tick(object sender, EventArgs e)
{
oldCount = playerList.Items.Count - 1;
if (oldCount < playerList.Items.Count)
{
if (playerList.Items.Count > 0)
{
RecentPlayer = playerList.Items[playerList.Items.Count].ToString();
val = playerList.Items[playerList.Items.Count].ToString();
NewPlayerMessage.Visible = true;
SetBalloonTip();
NewPlayerMessage.ShowBalloonTip(50000);
}
}
else {
return;
}
}
1 ответ
Решение
Решение 1. Вам нужно помнить, что индекс Array всегда начинается с Zero
и заканчивается Count-1
Заменить это:
playerList.Items[playerList.Items.Count]
С этим:
playerList.Items[playerList.Items.Count-1]
ИЛИ ЖЕ
Решение 2: просто используйте oldCount
переменная, которая содержит значение playerList.Items.Count - 1
Заменить это:
playerList.Items[playerList.Items.Count]
С этим:
playerList.Items[oldCount]