4

私は視覚的な継承を使用していますが、デザイン時に、できればフォームデザイナーで、継承されたコントロールのプロパティを変更する方法があるかどうか疑問に思っていました。そうでない場合は、デザイナーコードで。

基本クラスで自分のコントロールをパブリックとして宣言しています。子フォームコードではアクセスできますが、フォームデザイナーではアクセスできません。これは不可能ですか?

4

3 に答える 3

3

Visual Studio 内には、ビジュアルの継承に関する制限があります。残念ながら、派生フォーム\ユーザー コントロールは、ベース内のコレクション、つまり DataGridViewRows、ToolStrips、ListViewColumns などを含むコントロールを変更できません。

マイクロソフト バグ レポート

特定の状況では、これを回避する方法があります。基本クラスで、変更するコントロールの正確なプロパティを公開する保護されたプロパティを作成します (DataGridView.BackgroundColor または ListView.Columns)。

基本フォーム、必要なコンポーネントを変更するためにこのプロパティにアクセスできる必要があります。ListView.Columns と DataGridView.rows に対してこれを実行しましたが、ToolStrip.Items は機能しません。

于 2009-06-05T17:27:34.790 に答える
2

特定のコントロールでのみ機能するようですが、すべてではなく、その理由がわかりません。私の基本フォームには、ComboBox、ToolStrip、および DataGridView を含む TabControl があります。それらはすべて Public に設定されていますが、ComboBox のプロパティのみを変更でき、他の 2 つのコントロールは変更できません。

これがなぜなのかわかりません。

于 2009-03-23T15:15:30.610 に答える