私たちは、スタイルを変更して一貫性を持たせる(スタイル賢明な)いくつかのwinformアプリケーションを用意しています。私たちは、ボタンやツールストリップなどのウィンドウコントロールのいくつかの基本クラスを作成したいと考えています。私の基本クラスは、適用したい特定のスタイリングを指定することを意図しています。これは最初に私のフォームに持っていきますが、後でプロパティを更新したい場合には、すでにそれを取り込んだフォームには適用されません。とにかくこれを動作させるには?ここでは例を挙げて、ツールストリップの基本クラスを作成したいとします。私がしたいのはバックカラーを緑色に設定することです(私は本当にプロパティを追加したいですが、これは私の問題をデモするためです)。そこで、BaseControlsというクラスライブラリを作成し、BaseToolStripというクラスを作成し、コンストラクタでバックカラーを緑に設定します。winformsベースコントロールを作成する
public class BaseToolStrip : ToolStrip
{
public BaseToolStrip()
{
BackColor = Color.Green;
}
}
デモプロジェクトを作成してフォームにBaseToolStripのインスタンスを追加すると、それが機能します。緑色のツールストリップが作成されます。後でBaseToolStripクラスのコンストラクタを更新し、BackColor = Color.Redを設定して、私の解決策を実行すると、色がまだ緑色で、ベースツールストリップに赤の背景色を付けることを決めました。そのコントロールを取り込んだら、backcolor = greenを設定するように見えます。だから私のベースクラスでは、私はbackcolor = redを設定しています。すべてのインスタンスをオーバーライドし、バックカラーをmy BaseToolStripクラスで指定された色に設定する方法はありますか?
基本クラスではないサイドノートは、継承されたクラスなので、 'MyStyledToolStrip'のように優れています。 – TheLethalCoder
これはデザイナーの問題なのでしょうか、それとも実行時にも起こりますか? – TheLethalCoder
実行時にも発生します。 – Nighttrain5150