あなたはToolStripProfessionalRenderer
に基づいてカスタムレンダラを作成し、OnRenderItemText
メソッドをオーバーライドして、省略記号を使用してテキストを描画することができます
this.statusStrip1.Renderer = new CustomRenderer();
:
public class CustomRenderer : ToolStripProfessionalRenderer
{
protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
{
if (e.Item is ToolStripStatusLabel)
TextRenderer.DrawText(e.Graphics, e.Text, e.TextFont,
e.TextRectangle, e.TextColor, Color.Transparent,
e.TextFormat | TextFormatFlags.EndEllipsis);
else
base.OnRenderItemText(e);
}
}
その後、それはあなたのカスタムレンダラにごStatusStrip
のRenderer
を設定するだけで十分です
以下の例では、Spring
のプロパティがtrue
およびそのに設定されているToolStripStatusLabel
の動作を確認できますがCustomRenderer
を使用しています。
のVisual Studio 2017で
![enter image description here](https://i.stack.imgur.com/M2Ff8.gif)
テキストの幅を測定し、ステータスラベルwidth、次にSubString()+ "..."でトリミングするだけです。 –
どのような種類のVSを使用しますか?私はVS2015 Update 3、.NET 4.0、Win10を使用しています。これは大丈夫です。フォーム幅がテキストの幅より小さい場合、テキストは切り捨てられます。 "...全く表示されない"というのは私のフォームでは起こりません。 –
@JeremyThompsonこれは可能ですが、ユーザーがフォームを拡張すると、もう一度リフレッシュする必要があります。そうしないと、不完全なテキストが表示されます。 – Ahmed