Вертикальное изменение текста с помощью C # - PullRequest
0 голосов
/ 16 февраля 2019

Я планирую добавить эту функцию в свое приложение, где она будет отображать одну строку текста на метке, которую импортировал пользователь.

Как это работает: Пользователь импортируеттекстовый файл, затем после нажатия Button текст Label изменится на первую строку текста в текстовом файле, который импортировал пользователь.Через X секунд, он изменится на второй.По сути, он будет двигаться вертикально вниз до последней строки, а затем остановится.

List<string> lstIpAddress = new List<string>();
int nCount = 0;

private void Form1_Load(object sender, EventArgs e)
{
   timer1.Interval = 30000;
}

private void LoadBTN_Click(object sender, EventArgs e)
    {
        OpenFileDialog load = new OpenFileDialog();
        if (load.ShowDialog() == DialogResult.OK)
        {
            listBox1.Items.Clear();

            load.InitialDirectory = Environment.SpecialFolder.Desktop.ToString();
            load.Filter = "txt files (*.txt)|*.txt";
            List<string> lines = new List<string>();
            using (StreamReader r = new StreamReader(load.OpenFile()))
            {
                string line;
                while ((line = r.ReadLine()) != null)
                {
                    listBox1.Items.Add(line);

                }
            }
        }
    }

 private void button1_Click(object sender, EventArgs e)
 {
        for (int nlstItem = 0; nlstItem < lstIpAddress.Count; nlstItem++)
            {
                listBox1.Items.Add(lstIpAddress[nlstItem]);
            }
            label2.Text = listBox1.Items[nCount].ToString();
            nCount++;
            timer1.Start();
 }

 private void timer1_Tick(object sender, EventArgs e)
 {
        timer1.Stop();
        label2.Text = listBox1.Items[nCount].ToString();
        timer1.Start();
 }

1 Ответ

0 голосов
/ 16 февраля 2019

Вам нужно переместить nCount++; к событию щелчка на Таймере1.Кроме того, вы должны проверить, находится ли nCount в диапазоне listBox1.Items.Count, в противном случае вы получите исключение.

private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Stop();
            nCount++;
            if (nCount < listBox1.Items.Count)
            {
                label2.Text = listBox1.Items[nCount].ToString();
            }
            timer1.Start();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...