1

3 つの文字列があり、それらを 3 行のラベルに入れたいと考えています。ラベルはぎっしり詰まっており、高さを固定する必要があるため、各文字列が 1 行だけになるようにします。とは言っても、各文字列の長さを最大 20 文字に抑えたいと考えています。問題は、文字列が20文字未満であるという例外がスローされるため、ラベルに書き込む前にそれがそうであるかどうかを評価する必要があることです。

私が試したのは:

mobPartLabel.Text = String.Format(
    "String 1: {0} \nString 2: {1} \nString 3: {2}", 
       (string1.Length >= 20 ? string1.Substring(0, 19) : string1), 
       (string2.Length >= 20 ? string2.Substring(0, 19) : string2), 
       (string3.Length >= 20 ? string3.Substring(0, 19) : string3));

明らかに、これはうまくいきませんでした。:-\しかし、それは基本的に私が達成したいことです。この初歩的な質問をお許しください。三次演算子の使用は初めてです。それらが何であり、何をするかは知っていますが、今まで実装する理由が見つかりませんでした>_>

ここで私が間違っている可能性があることについて誰か提案がありますか、それが完全に不可能な場合は、より良い方法は何ですか?

EDITこのコードを使用して

            string string1 = "Rawr";
            string string2 = "Rawr2";
            string string3 = "Rawr3";

            mobPartLabel.Text = String.Format(
                "String 1: {0} \nString 2: {1} \nString 3: {2}",
                   (string1.Length >= 20 ? string1.Substring(0, 19) : string1),
                   (string2.Length >= 20 ? string2.Substring(0, 19) : string2),
                   (string3.Length >= 20 ? string3.Substring(0, 19) : string3));

私のラベルはすべて「文字列 1:」であり、それだけです。それが完全で完全なラベルです。:(

4

2 に答える 2

3

あなたのコードは問題なく動作します。おそらく、ラベル自体のプロパティ/サイズを持つもの。AutoSizeプロパティを falseに設定しましたか?

于 2013-04-29T16:35:14.073 に答える