none
LabelのAutoElipsisプロパティについて RRS feed

  • 質問

  • LabelのAutoElipsisプロパティを、Trueに設定すると、
    文字列がラベルからはみ出すと「・・・・」と省略表示になりますが、
    Labelを縦方向にサイズを大きくして、文字列を設定すると、

    「あいうえお
    かきくけこ
    さしすせ・・・」

    というように、文字列が改行してから、限界まで表示してから「・・・・」と言う表示になります。

    これをLabelを縦方向にサイズを広げた時に
    改行せずに、
    「あいうえ・・・・

    というような、最初の行でラベルコントロールの右側にぶつかったら、省略表示にすることは出来ないでしょうか

    今Labelを継承した部品を使用しているのですが、
    はみ出した文字を表示しないように、いろいろ継承元をTextBoxにしたり、RichTextBoxiにしてみたのですが、動作が重すぎたり、そもそもそのような省略表示が出来ない、背景にイメージが設定できなくなるなど難儀していて、
    Labelを継承元にすれば、その改行時の省略表示さえ出来れば解決するのですが、そこが解決できません・・・

    なにかいい方法は無いでしょうか

    2012年9月24日 5:36

回答

  • Panelコントロール上に1行分のみの高さのLabelコントロールを配置。

    LabelコントロールのDockをTopに設定。

    で、サイズの変更はPanelで行う。みたいな方法では実現できませんでしょうか?

    Labelの背景色をColor.Transparentにすれば、Panelのイメージがそのまま表示されます。
    • 編集済み t.jin 2012年9月24日 6:31
    • 回答としてマーク いちろう 2012年9月25日 1:45
    2012年9月24日 6:12

すべての返信

  • Panelコントロール上に1行分のみの高さのLabelコントロールを配置。

    LabelコントロールのDockをTopに設定。

    で、サイズの変更はPanelで行う。みたいな方法では実現できませんでしょうか?

    Labelの背景色をColor.Transparentにすれば、Panelのイメージがそのまま表示されます。
    • 編集済み t.jin 2012年9月24日 6:31
    • 回答としてマーク いちろう 2012年9月25日 1:45
    2012年9月24日 6:12
  • ありがとうございます。
    Panelは作りが変わりすぎてしまうので、出来なかったのですが、
    Labelの中に、もう一つラベルを実装して、
    それを
    this.Controls.Add(kakushilabel)と言うようにして、
    後は、言われたようにプロパティを設定したら、うまくいきました

    2012年9月25日 1:47