【问题标题】:Component is constantly refreshing (repainting)组件不断刷新(重绘)
【发布时间】:2012-03-21 13:12:13
【问题描述】:

我有自己的组件,在我的测试 winform 应用程序中运行良好,但是当我将它发送给我的朋友并且他在他更复杂的应用程序中使用它时,我的组件不断刷新,响应缓慢,......我认为问题是在我的组件中,因为旧版本效果很好。但我不知道我改变了什么(很多周前)。我必须尽快给他工作版本,但我不知道如何解决它,因为我不知道问题出在哪里。你可以试试this component 并说你是否有问题。或者查看我的代码 (calendar.cscalendar.designer.cs) 并尝试帮助我找到问题。非常感谢

【问题讨论】:

    标签: c# winforms events custom-component


    【解决方案1】:

    这对我来说像是一个危险信号:

    void panelKalendar_Paint(object sender, PaintEventArgs e)
    {
      Debug.WriteLine("panelKalendar_Paint");
      if (_viewType == ViewType.Week)
      {
        btnNext.Show();
        btnPrev.Show();
        lblMonth.Show();
        panelKalendar.Size = new Size(SIRKA_KALENDARE_WEEK, VYSKA_KALENDAREBEZPANELU_WEEK);
        //...
      }
      //...
    }
    

    您在绘制事件期间调整控件的大小,这将再次调用绘制事件。控件也是如此,在绘制事件期间显示或隐藏控件也会导致控件无效。

    不是 100% 确定,我没有运行代码。

    【讨论】:

    • 看起来很有帮助。只是不知道为什么在我的测试应用程序中它很好(没有任何问题)。谢谢你救了我:)
    猜你喜欢
    • 2019-10-14
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 2016-02-28
    • 1970-01-01
    • 2022-01-27
    • 2013-01-08
    相关资源
    最近更新 更多