【问题标题】:Error appears when trying to derive class from class Panel in C#尝试从 C# 中的类 Panel 派生类时出现错误
【发布时间】:2016-08-09 02:19:53
【问题描述】:

我试图避免在面板上绘图时闪烁。 我找到了一个很好的解决方案,首先从 Panel 类派生一个类

public class DoubleBufferedPanel : Panel
{
    public DoubleBufferedPanel()
    {
        this.SetStyle(ControlStyles.AllPaintingInWmPaint |
            ControlStyles.OptimizedDoubleBuffer |
            ControlStyles.UserPaint, true);
    }
}

然后在 Designer.cs 类中用 DoubleBufferedPanel 替换(这是自然的)System.Windows.Forms.Panel。 它对我来说非常有效,但由于以下错误而无法进入 Form1 [Design]: 服务 System.Windows.Forms.Design.ISelectionUIService 服务已存在于服务容器中。参数名称:服务类型

即使我只是复制,也会出现错误 - 使用 DoubleBufferedPanel 将 DoubleBufferedPanel 类粘贴到我的 Form1.cs System.Windows.Forms.Panel。

有什么办法可以避免这样的错误吗?我可以处理它,因为我的程序在运行时运行良好,但我无法访问 Form1 [Design]。

【问题讨论】:

标签: c# winforms error-handling panel flicker


【解决方案1】:

我找到了解决办法,但是很奇怪。 我在我的项目中创建了一个新类 DoubleBufferedPanel.cs 作为单独的文件并复制了粘贴的代码。 现在它可以正常工作了。 话题可以关闭,但我仍然不知道发生了什么。

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2020-09-12
    相关资源
    最近更新 更多