DefaultValueAttribute が一部のプロパティから削除されました

DefaultValueAttribute が、既定のフォントの高さに依存するコントロール プロパティから削除されました。

導入されたバージョン

.NET 8

以前の動作

影響を受けるプロパティは DefaultValueAttribute で装飾され、既定値は想定されるアプリケーション全体のフォントに従ってハードコーディングされました。

新しい動作

.NET 8 以降では、属性は特定のプロパティから削除されます。 デザイン時の既定値は、起動時に現在のフォント メトリックに基づいて計算されます。

カテゴリの変更

この変更は、動作変更です。

変更理由

DefaultValueAttribute 属性は、Windows フォーム デザイナーで使用される定数の既定値を定義するようにデザインされています。 以前は、この属性を使用して、現在のフォントの高さに依存する特定のプロパティの既定値を指定していました。 .NET Core 3.1 で新しい既定のフォントが導入されましたが、属性値はそれに応じて更新されませんでした。 さらに、アプリケーション フォントを変更する API が追加されました。 したがって、定数値ではなく、動的な既定値を使用するのが理にかなっています。

デザイナーには動的な既定値を指定するメソッドが用意されていますが、DefaultValueAttribute で装飾されたプロパティでは、代わりに定数の既定値が常に使用されます。 動的な既定値を指定するメソッドは、属性によって提供されるデザイン時の機能を保持します。

DefaultValueAttribute は、デザイン時のシナリオでの内部使用を目的としています。 他のシナリオでは使用しないでください。

影響を受ける API

次の表に、影響を受けるプロパティを一覧表示します。

プロパティ バージョンを変更する
System.Windows.Forms.DataGridViewRow.Height Preview 2
System.Windows.Forms.ListBox.ItemHeight Preview 2