私は、C#が何をどのようにして行うのかを習得しようとしています。私は歴史的にはVisual Foxpro(VFP)の開発者であり、アプリケーションコントロールの独自のベースラインを作成することで、アプリケーションの幅広い用途に使用できるようになりました。オーバーライドされたWinFormコントロールの「デフォルト」値は、どのようにして防止できますか?
C#のパラレルを学習しようとすると、何かにぶつかっています。私は自分のラベルコントロール(コントロールはラベルのサブクラスである)を "Arial"というフォントで定義しているとします。次に、フォームを追加すると、Designerは自動的にFormクラスの "Designer.cs"部分に表示されるいくつかのプロパティ値を事前に入力します。
this.LabelHdr2.AutoSize = true;
this.LabelHdr2.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold);
this.LabelHdr2.ForeColor = System.Drawing.Color.Blue;
this.LabelHdr2.Location = new System.Drawing.Point(150, 65);
this.LabelHdr2.Name = "LabelHdr2";
this.LabelHdr2.Size = new System.Drawing.Size(158, 22);
this.LabelHdr2.TabIndex = 5;
this.LabelHdr2.Text = "LabelHdr2";
コントロールがフォームに置かれるたびにフォント、色、サイズ、AutoSizeが生成されないようにします。後でフォントを「Arial」10から「Tahoma」11に変更する場合は、すべてのフォーム(およびその他のカスタムコントロール)に戻って、変更する必要があります。 VFPで
私は私の基本クラスの何かを変更した場合、すべてのフォームは自動的に変更を認識。私は何も編集する必要はありません(サイジングの影響によるアライメントの可能性は除きます)...しかし、色、フォントなどはVFPでは問題ありません。
C#では、それは、クラスの新しい/更新された値によって認識されるように、これを回避するための合理的な方法は、
あります...それぞれのフォームを変更?あなたの派生クラスのプロパティにReadOnly attributeを追加
は、読み取り専用、デフォルト値の一部に優先するoccaisionがあるかもしれないので、私は[のDefaultValue(someValueの)]オプションについてコメントを好みます。しかし、フォントを返そうとしてエラーが発生します。 (somevalue)は、新しいobjではなく一定であることを期待しています – DRapp
これを試してください:[DefaultValue(typeof(Font)、 "Microsoft Sans Serif、10 pt")](from this url:http://social.microsoft.com/フォーラム/ EN-US/netfxbcl /スレッド/ 9acb9a96-d461-4732-b99c-65390b4b53fa) – David
いや...まだ、このページで作成します... this.defLabel1.Font =新しいSystem.Drawing.Font( "Microsoft Sans Serif"、8.25F、System.Drawing.FontStyle.Regular、System.Drawing.GraphicsUnit.Point、((byte)(0))); 私は今のところREAD ONLYオプションを(今のところは)固執すると思います。 – DRapp