TimerControl"保持"清爽的焦点

时间:2016-02-16 09:38:21

标签: c# multithreading user-controls

我创建了一个带有标准Windows窗体计时器和标签的UserControl。标签将由hh:mm:ss格式的计时器每秒刷新一次,使用backgroundworker。标签不会更新,因为只有UI线程可以执行此操作。所以我已经使用这段代码来实现它:

    delegate void RefreshTimerCallback(string text);
    private void RefreshTimer(string text)
    {
            if (lblTiming.InvokeRequired)
            {
                RefreshTimerCallback d = RefreshTimer;
                Invoke(d, text);
            }
            else
            {
                lblTiming.Text = text;
            }
    }

除了一件事,现在一切都很好。似乎UserControl总是“接管”#39;焦点。我的意思是,当我将UserControl放在带滚动条的面板上时,当我向下滚动时,它总是向上滚动到UserControl。

问题是,是否有更好的方法来更新UserControl中的标签?或者更好,我可以告诉UserControl不要接管焦点吗?

0 个答案:

没有答案