Как использовать таймер для перемещения текста из стороны в сторону? - PullRequest
1 голос
/ 14 февраля 2012

У меня есть ярлык, который я пытаюсь переместить из стороны в сторону. Я заставил его работать с циклом while (true), но решил попробовать вместо него использовать таймер.

    private int x = 0;
    private int y = 11;
    private void timer1_Tick(object sender, EventArgs e)
    {
        if (x <= 11)
        {
            x++;
            string ping = new string(' ', x) + "ping";
            label2.Text = ping;
        }
        else if (y >= 0)
        {
            y--;
            string pong = new string(' ', y) + "pong"; // this is where the exceptions given
            label2.Text = pong;
        }

то есть, насколько я понял, это работает вроде как, но после того, как он это сделал, один раз выдает исключение

'count' должен быть неотрицательным.

Я не уверен, как это исправить, любая помощь будет великолепна.

Ответы [ 4 ]

1 голос
/ 14 февраля 2012

Когда y достигнет 0, оно все равно будет уменьшено еще раз.Измените на y > 0 и все будет в порядке.

1 голос
/ 14 февраля 2012

string() конструктор выдает, когда вы передаете отрицательное значение в качестве второго параметра.

MSDN: String Constructor (Char, Int32)

ArgumentOutOfRangeException- количество меньше нуля.

Так что просто измените

if (y >= 0)

на

if (y > 0)
0 голосов
/ 13 февраля 2017
if (x <= 11)
{
    x++;
    string ping = new string(' ', x) + "ping";
    label2.Text = ping;
    if (x == 11)
    {
        y = 11;
    }
}
else if (y >= 0)
{
    y--;
    string pong = new string(' ', y) + "pong"; // this is where the exceptions given
    label2.Text = pong;
    if (y == 0)
    {
        x = 0;
    }
}
0 голосов
/ 01 июля 2013
private int x = 0;
private int y = 100;
private void timer1_Tick(object sender, EventArgs e)
{
    if (x <= 100)
    {
        x++;
        string ping = new string(' ', x) + "COURT DOCUMENT MANAGEMENT SYSTEM";
        label1.Text = ping;
    }
    else if (y > 0)
    {
        y--;
        string pong = new string(' ', y) + "MY ARCHIVE MY LIFELINE!!!!"; // this is where the exceptions given
        label2.Text = pong;
    }
}
...