Label

TextBoxのラベルとする用途ならば、PlaceholderTextで代用できる可能性があります。

クラス階層

  • System.ComponentModel.Component
    • System.Windows.Forms.Control
      • System.Windows.Forms.Label

プロパティ

プロパティ 内容 既定値
bool AutoSize trueならば、全体の内容が表示されるように大きさが自動調整される

幅が不足するならば高さが拡大され、改行して表示される

false (デザイナーで追加するとtrue)
bool AutoEllipsis trueならば、省略記号によって追加のテキストがあることを示す

AutoSizeがtrueのときは省略されないようにLabelが拡大されるため、省略記号は表示されない

false
string Text コントロールに関連付けられたテキスト。nullを設定すると、空文字列に置き換えられて設定される  
ContentAlignment TextAlign テキストの配置方法を指定する TopLeft
ImageList ImageList 表示するイメージを保持するImageList null
int ImageIndex ImageListの中から使用するイメージのインデックス。範囲外の値を設定すると、無視される -1
string ImageKey ImageListの中から使用するイメージのキー ""
Image Image 表示するイメージ

ImageListが設定されているならば、これから取得するとImageIndexで指定されているImageが返される Image - Label.cs

これを設定すると、ImageListとImageIndexは既定値に設定される

null
ContentAlignment ImageAlign イメージの配置方法 MiddleCenter
       
プロパティ - Label Class (System.Windows.Forms) | Microsoft Learn

Fontを変更するとコントロールのサイズが変更され、隣接するコントロールに重なって表示されることがあります。よってLabelが背面に表示されるようにZオーダーが大きくなるように親コントロールに追加するか、Fontが変更されたときに隣接するコントロールの位置を調整します。

AutoSize

Labelがコンテナの大きさを超える可能性があるならば、これをfalseとしてAnchorなどでサイズを調整させ、AutoEllipsisをtrueとして省略されていることがわかるようにします。

これをfalseとすると、Sizeの大きさによってはテキストが改行して表示されることがあります。これをつねに1行で表示するにはOnPaint()をオーバーライドして、TextFormatFlags.WordBreakを指定しないでテキストを描画します。ただしそのときbase.OnPaint()を呼ばないとテキストが省略されたときにツールチップが表示されなくなるため、必要ならばinternalなフィールドであるshowToolTipを設定します。

bool showToolTip;
if (AutoEllipsis)
{
    Size size = ClientSize;
    Size preferredSize = GetPreferredSize(size);

    showToolTip = (size.Width < preferredSize.Width || size.Height < preferredSize.Height);
}
else
{
    showToolTip = false;
}

typeof(Label).GetField("showToolTip", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(this, showToolTip);
OnPaint - label.onpaint

TextAlign

AutoSizeがtrueのときはテキストとLabelの大きさが一致しているため、意味をなしません。

CheckBoxなどはこのプロパティの既定値がMiddleLeftとなっており、既定では垂直方向の位置が合いません。

テキストの表示領域の幅が不足すると改行され、指定とは異なる位置に表示されているように見えることがあります。

UseMnemonic

既定はtrueで、「&」に続く文字がアクセスキー (access key) として機能します。その状態でそのアクセスキーを押すと、Labelのタブ オーダー (tab order) の順が次のコントロールにフォーカスが設定されます。Remarks - Label.UseMnemonic Property (System.Windows.Forms) | MSDN

参考

参考書

Microsoft Learnから検索