リストボックス内に改行を作成して、ユーザーがテキストの全内容を読むことができないようにテキストをドラッグしないようにします。私はそのようなテキストは、リストボックスの終わりに達した場合、それは簡単な言葉、ワードラップで、ダウン次の行に行くことを望ん Asp.netでC#を使用してリストボックスで改行を作成するには?
:
これは次のように私の現在の出力がどのように見えるかです。私は検索するためにオンラインに行って、リストボックスを使用して折り返しテキスト機能を実装することは不可能であることを発見しました。私は、しかし、私は私は私はそれがになりたいリストボックスにそれを実装する方法がわからないです、オンラインワードラップアルゴリズムを見つけることができたし、それを使用することにしました
ここで私が見つけたコードです:。
// https://www.codeproject.com/Articles/51488/Implementing-Word-Wrap-in-Cpublic static string WordWrap(string text, int width)
{
int pos, next;
StringBuilder sb = new StringBuilder();
// Lucidity check
if (width < 1)
return text;
// Parse each line of text
for (pos = 0; pos < text.Length; pos = next)
{
// Find end of line
int eol = text.IndexOf(Environment.NewLine, pos);
if (eol == -1)
next = eol = text.Length;
else
next = eol + Environment.NewLine.Length;
// Copy this line of text, breaking into smaller lines as needed
if (eol > pos)
{
do
{
int len = eol - pos;
if (len > width)
len = BreakLine(text, pos, width);
sb.Append(text, pos, len);
sb.Append(Environment.NewLine);
// Trim whitespace following break
pos += len;
while (pos < eol && Char.IsWhiteSpace(text[pos]))
pos++;
} while (eol > pos);
}
else sb.Append(Environment.NewLine); // Empty line
}
return sb.ToString();
}
/// <summary>
/// Locates position to break the given line so as to avoid
/// breaking words.
/// </summary>
/// <param name="text">String that contains line of text</param>
/// <param name="pos">Index where line of text starts</param>
/// <param name="max">Maximum line length</param>
/// <returns>The modified line length</returns>
private static int BreakLine(string text, int pos, int max)
{
// Find last whitespace in line
int i = max;
while (i >= 0 && !Char.IsWhiteSpace(text[pos + i]))
i--;
// If no whitespace found, break at maximum length
if (i < 0)
return max;
// Find start of whitespace
while (i >= 0 && Char.IsWhiteSpace(text[pos + i]))
i--;
// Return length of text before whitespace
return i + 1;
}
は現在、私は、自分自身でメソッドとしてそれを置く私は、リストボックス方法自体に直接このメソッドを置く必要がありますか?
「はい」の場合は、上記のコードを変更して動作させるにはどうすればよいですか? ところで、descLbは私のリストボックスの名前です
リストボックスを別のフォーム(例:それは私のための単純な私はリストボックスを使用したいと思います。
。それをチェックして、私に知らせてください。 – Sunil