0

こんにちは、キーが押されappend textた後までのこのコード。textBoxキーを押すたびに 1 行を書き込みます。たとえば、5 つのキーを押して、それらを 1 行にまとめる良い解決策があるかどうか尋ねてもよろしいですか?

          private void User_KeyPress(object sender, KeyPressEventArgs e)
    {
        textBox.AppendText(string.Format("You Wrote: - {0}\n", e.KeyChar));
        textBox.ScrollToCaret();
    } 

たとえば、MOUSE は次のようには書きません。

You Wrote: M; You Wrote: O; You Wrote: U; You Wrote: S; You Wrote: E

しかし、出力は次のようになります。

You wrote: MOUSE

4

3 に答える 3

1

しきい値に達するまでキーの押下をバッファリングしてから、バッファの内容全体を出力できます。

例えば

Queue<char> _buffer = new Queue<char>();

private void User_KeyPress(object sender, KeyPressEventArgs e)
{
  _buffer.Enqueue(e.KeyChar);

  if(_buffer.Count > 5)
  {
    StringBuilder sb = new StringBuilder("You Wrote: ");
    while(_buffer.Count > 0)
      sb.AppendFormat(" {0}", _buffer.Dequeue());

    Console.WriteLine(sb.ToString());
  }
}
于 2013-10-08T19:53:07.917 に答える