Top > .NET > コントロール > ログを複数行テキストボックスに表示する

ログを複数行テキストボックスに表示する Edit

メッセージを複数行テキストボックスに追加していく形でログを表示したいが、何万行になるかわからず、単純にTextBox.AppendText()するのがためらわれる場合

一定行数を超えたら半分にする方法 Edit

        /// <summary>
        /// txtMessageにメッセージを追加する
        /// </summary>
        private void AppendText(string str)
        {
            // メッセージテキストボックスの行数がMAX_MESSAGE_LINEを超えたら、
            // 行数を半分にする(第1行から半分までを消去する)
            const int MAX_MESSAGE_LINE = 10000;
            if (txtMessage.Lines.Length > MAX_MESSAGE_LINE)
            {
                string[] newLines = new string[MAX_MESSAGE_LINE / 2];
                for (int i = 0; i < newLines.Length; i++)
                {
                    newLines[i] = txtMessage.Lines[txtMessage.Lines.Length - 1 - (newLines.Length - 1 - i)];
                }
                txtMessage.Lines = newLines;
            }

            txtMessage.AppendText(str + "\n");
        }

テキストボックスの代わりにリストボックスを使う方法 Edit

http://stackoverflow.com/questions/383813/best-approach-to-windows-forms-rolling-log-output-in-textbox

SelectionModeプロパティをMultiExtendedにするとテキストボックスっぽく選択できる。
しかしコピーができないので自分で実装する必要がある。

  • a -- aaaaa? 2017-04-18 (火) 15:47:02
  • ssssssssssssssssss -- ssss? 2017-11-14 (火) 17:39:26


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes