2009-03-23 18 views
3

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

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

+0

まだ興味がある人には、ここでうまく説明します:http://stackoverflow.com/a/207549/908336 –

答えて

-1

コントロールの表示を変更する必要があります。コントロールのプロパティModifiersをpublicに設定し、プロジェクトを再コンパイルすると、継承されたコントロールのプロパティを変更できます。

+0

これは特定のコントロールでのみ動作するようですが、すべてではなく、なぜわかりません。私のベースフォームでは、その中にComboBox、ToolStrip、およびDataGridViewがあるTabControlがあります。それらはすべてPublicに設定されていますが、ComboBoxのプロパティのみを変更でき、他の2つのコントロールは変更できません。 –

2

これは特定のコントロールでのみ動作するようですが、すべてではなく、なぜわかりませんか。私のベースフォームでは、その中にComboBox、ToolStrip、およびDataGridViewがあるTabControlがあります。それらはすべてPublicに設定されていますが、ComboBoxのプロパティのみを変更でき、他の2つのコントロールは変更できません。

これはなぜわかりません。

+0

ToolStripとDGVの設計者は、それをサポートしていません。 –

2

視覚的な継承のためにビジュアルスタジオ内に制限があります。残念ながら、派生フォームはユーザーコントロールは、ベース内のコレクションを含むコントロール、すなわちDataGridViewRows、ToolStrips、ListViewColumnsなど

Microsoft Bug Reportを変更することはできません

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

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

+0

私は同じ状況になった、それはボタンのために働いたが、ツールストライプのためには働かなかった。 – Thunder

関連する問題