問題があります。どのデザイナーが継承ContextMenuStrip
を に追加しないのですかcomponents
。問題を再現する方法は次のとおりです。
- 新しいプロジェクト (Windows フォーム アプリケーション) を作成します。
ContextMenuStrip
デザイナー経由でフォームに追加すると、次のように生成されます。private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); ... }
MyContextMenuStrip
クラスを作成します。public class MyContextMenuStrip : ContextMenuStrip { }
MyContextMenuStrip
コンパイルしてデザイナー経由でフォームに追加すると、次のように生成されます。private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); this.myContextMenuStrip1 = new WindowsFormsApplication1.MyContextMenuStrip(); ... }
なんてこと?コンポーネントに追加されないのはなぜですかMyContextMenuStrip
???
components
また、ローカリゼーション マネージャー (メニューを自動的に翻訳するため) にメニューを表示する必要があります。属性、インターフェース、またはオーバーライドを忘れていませんか??