【问题标题】:Avoid Label Blinking Using Timer Control [duplicate]使用计时器控件避免标签闪烁 [重复]
【发布时间】:2016-06-05 07:09:52
【问题描述】:

我正在使用代码编辑器(winforms)

我正在使用类似这样的标签在 countline 上工作:

http://oi42.tinypic.com/iypoub.jpg

使用此代码:

private void timer_countline_Tick(object sender, EventArgs e)
        {
            updateNumberLabel();
        }

private void updateNumberLabel()
        {
            //we get index of first visible char and number of first visible line
            Point pos = new Point(0, 0);
            int firstIndex = rtb.GetCharIndexFromPosition(pos);
            int firstLine = rtb.GetLineFromCharIndex(firstIndex);

            //now we get index of last visible char and number of last visible line
            pos.X = ClientRectangle.Width;
            pos.Y = ClientRectangle.Height;
            int lastIndex = rtb.GetCharIndexFromPosition(pos);
            int lastLine = rtb.GetLineFromCharIndex(lastIndex);

            //this is point position of last visible char, we'll use its Y value for calculating numberLabel size
            pos = rtb.GetPositionFromCharIndex(lastIndex);


            //finally, renumber label
            numberLabel.Text = "";
            for (int i = firstLine; i <= lastLine + 1; i++)
            {
                numberLabel.Text += i + 1 + "\n";
            }

        }

定时器设置间隔为 1 。 标签码头=左。 现在的问题是每次我运行程序时,标签都会不停地闪烁。 即使我改变间隔仍然是同一件事。

但是当我将 updateNumberLabel() 转移到 textchange 事件时,每次我添加一个 Richtextbox 上的字符或按空格键。

像这样:http://oi40.tinypic.com/a43gcy.jpg

现在我的问题是如何避免这种情况?还是有什么办法可以避免眨眼 整个标签什么时候更新?

非常感谢您的帮助!

【问题讨论】:

  • 闪烁是指闪烁吗?还是持续眨眼?
  • @cokeman19 在我使用计时器时快速闪烁...我传递给 textchange 事件的时间在我在 Richtextbox 上添加文本时闪烁
  • 您可能会受益于启用双缓冲,无论是在标签级别还是可能在表单级别。这里有两个例子:stackoverflow.com/questions/3816362/winforms-label-flickering.
  • @cokeman19 你的权利先生......关于对接,但问题是我仍然不能用 splitcontainer 做到这一点。我已经按照公认的答案做了,但它仍然不停地闪烁
  • @cokeman19 成功了......请回答并接受它,先生,非常感谢!

标签: c# timer label


【解决方案1】:

您可能会受益于启用双缓冲,无论是在标签级别还是可能在表单级别。

这里有两个例子:winforms Label flickering

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 2011-01-31
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 2017-07-14
    相关资源
    最近更新 更多