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]へのアクセス権がありません。
おそらく、このような方法で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 –