Как остановить автоматическую прокрутку ListBox при обновлении? - PullRequest
0 голосов
/ 11 марта 2020

У меня есть список, в котором отображается ряд таймеров. Каждые 100 мс я обновляю список, чтобы отобразить истекшее время начала каждого таймера. Когда я пытаюсь прокрутить список вниз, всегда кажется, что он возвращается наверх. Я предполагал, что это было связано с фокусом списка. Кажется, я не могу понять, как остановить прокрутку на выбранный предмет. Не знаю, нужно ли тебе это. Но вот код и для моего таймера обновления для списка, и для моего класса таймера

Таймер обновления:

private void tmrUpdate_Tick(object sender, EventArgs e)
    {
        for(int i = 0; i < intNumTables; i++)
        {
            litTimers.Items[i] = string.Format("Timer {0:##}:{1,18}",
                timerArr[i].intTimerNum, timerArr[i].timer.GetTime());
        }
    }

Класс таймера:

class TimerClass
{
    private System.Timers.Timer timer;
    private int intHours, intMinutes, intSeconds = 0;
    private string strCounter;
    private bool isRunning = false;

    public TimerClass()
    {
        timer = new System.Timers.Timer();
        timer.Interval = 1000;
        timer.Elapsed += OnTimeEvent;
    }

    public void StartTimer()
    {
        timer.Start();
        isRunning = true;
    }

    public void StopTimer()
    {
        timer.Stop();
        isRunning = false;
    }

    public void ResetTimer()
    {
        timer.Stop();
        isRunning = false;

        intHours = intMinutes = intSeconds = 0;
        strCounter = null;
    }

    public bool IsRunning()
    {
        if (isRunning == false)
            return false;
        else
            return true;
    }

    public string GetTime()
    {
        return strCounter;
    }

    private void OnTimeEvent(object sender, ElapsedEventArgs e)
    {
        intSeconds++;

        if (intSeconds == 60)
        {
            intSeconds = 0;
            intMinutes++;
        }
        if (intMinutes == 60)
        {
            intMinutes = 0;
            intHours++;
        }

        strCounter = string.Format("{0:00}:{1:00}:{2:00}", intHours, intMinutes, intSeconds);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...