2016-04-17 20 views
-1

Panelで描画するときにちらつきを避けようとしています。 Iはパネルクラスからクラスを導出するために最初の良い解決策を見つけたCクラスのPanelクラスからクラスを派生させようとしたときにエラーが表示される

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

次いでDesigner.csクラスでDoubleBufferedPanelと(naturallである)System.Windows.Forms.Panelを置き換えます。 完全に動作しますが、次のエラーのためForm1 [Design]にアクセスできなくなってしまいました。 サービスSystem.Windows.Forms.Design.ISelectionUIServiceが既にサービスコンテナに存在しています。パラメータ名:serviceType

DoubleBufferedPanelを使用してDoubleBufferedPanelクラスをForm1.cs System.Windows.Forms.Panelにコピー&ペーストしてもエラーが表示されます。

このようなエラーを回避する手段はありますか?私はそれを処理することができます、私のプログラムは完璧に動作するので、私はそれを実行しますが、私はForm1 [Design]へのアクセス権がありません。

+0

おそらく、このような方法でDesigner.csを直接変更することにはいくつかの問題があります。コントロールを標準的な方法でhttps://msdn.microsoft.com/en-us/library/5h0k2e6x(v=vs.100).aspxに作成し、ツールボックスhttpからデザイナに追加することがあります://stackoverflow.com/questions/3446429/how-to-put-a-usercontrol-into-visual-studio-toolbox –

答えて

0

私は解決策を見つけましたが、それは非常に奇妙です。 新しいクラスDoubleBufferedPanel.csを別のファイルとしてプロジェクトに作成し、貼り付けたコードをコピーしました。 これは問題なく動作します。 トピックを閉じることができますが、何が起こったのかまだ分かりません。

ありがとうございました!

関連する問題