2016-07-02 26 views
4

StatusStripがC#フォームの下部にドッキングされています。ラベルが含まれています。テキストが長く表示されない場合を除いてすべて、私はフォームを広げなければならないし、突然それが現れる。ユーザーはアプリが何かを見せているし、それがすべてで表示されていないとき、それは示していないため、その後、彼は、それを自分自身を広げることができることを認識できるようにStatusStripラベルがテキストが長すぎるときに表示されない

This is a very long tex... 

:それは、下記のフォームでそれを表示することは可能ですユーザーには何でも。

+2

テキストの幅を測定し、ステータスラベルwidth、次にSubString()+ "..."でトリミングするだけです。 –

+0

どのような種類のVSを使用しますか?私はVS2015 Update 3、.NET 4.0、Win10を使用しています。これは大丈夫です。フォーム幅がテキストの幅より小さい場合、テキストは切り捨てられます。 "...全く表示されない"というのは私のフォームでは起こりません。 –

+0

@JeremyThompsonこれは可能ですが、ユーザーがフォームを拡張すると、もう一度リフレッシュする必要があります。そうしないと、不完全なテキストが表示されます。 – Ahmed

答えて

6

あなたは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); 
    } 
} 

その後、それはあなたのカスタムレンダラにごStatusStripRendererを設定するだけで十分です

以下の例では、Springのプロパティがtrueおよびそのに設定されているToolStripStatusLabelの動作を確認できますがCustomRendererを使用しています。

のVisual Studio 2017で

enter image description here

+0

私はVS2015.3、.NET 4.0、およびWin10を使用しています。これがstatusStripのラベルのデフォルト動作です。私はそれを拡張する必要はありません。 –

+0

@x ...サンプルは 'Windows 2013'で' VS 2013.4'と '.NET 4.5'を使って作成されています。修正が必要なようです。 –

+0

ありがとう@RezaAghaei私はVS 2010と.Net 3.5のWindows 8.1にあります。 – Ahmed

0

、受け入れ答えは私のために動作しませんでした。だからここに別の簡単な解決策があります。 StatusStripのLayoutStyleプロパティをFlowに設定します。すなわち:

statusStrip1.LayoutStyle= LayoutStyle.Flow; 

とSET

`statusStrip1.AutoSize= false;` 
+0

おそらくあなたは解決策を適用して間違いを犯しました。ステータストリップラベルを追加したことを確認してください。また、ラベルのspringプロパティがtrueに設定されていることを確認し、私がanswerに投稿したレンダラーを使用しています。 –

2

あなたは

ToolStripStatusLabel.Spring = True; 

を設定した場合、あなたは "..." を得ることはありませんが、テキストの場合でも利用できる表示されますスペースが不足しています。