2017-07-15 24 views
0
private void richTextBox1_KeyDown(object sender, KeyEventArgs e) 
     { 
      if (e.KeyCode == Keys.Enter) 
      { 
       string lastpadnum = padnumbers[padnumbers.Count - 1]; 
       int desiredLength = lastpadnum.Length; 
       int nextnum = Convert.ToInt32(lastpadnum) + 1; 
       string nextpadnum = nextnum.ToString().PadLeft(desiredLength, '0'); 
       padnumbers.Add(nextpadnum); 
       richTextBox1.AppendText("\r\n" + nextpadnum); 
      } 
     } 

これは、richtextboxの一番下までスクロールしてEnterをクリックすると、新しい行が追加されます。最後の行が191だった場合 は新しいものが192になりますまたは最後の1が000191だった場合は新しいものが000192.新しい行の後に空白/空白行を入れずに、richTextBoxに新しい行を追加するにはどうすればよいですか?

になりますが、私は二つの問題があります:最初は、これは場合にのみ動作していることである

を私は下にスクロールし、新しい最後の行を追加した後にenterをクリックします。しかし、私は新しい行を追加し、2つの既存の行の中間に番号を付けたいのですか?どのように私は全体の行番号を付け直しますか?例えば、もし私が行0033と0035の間にenterキーをクリックすると、新しい行は0034ですが、既に存在する行0034は今度は0035となり、0035は0036になります。

2番目の問題は、下の行をクリックすると、新しい行が空白の新しい行になり、その行が追加されます。私はそれを新しい行にするために "\ r \ n"が必要ですが、次回は入力をクリックすると最初に新しい空行が作成されます。空行を避けるにはどうすればよいですか?最後の行の後に改行が追加されますか?あなたはそれが一番下にとにかく、あなたに新しい行を追加します真ん中のラインにEnterキーを押すと、あなたの最初の質問については

+0

パドルナンバーとは何ですか?私たちにもっとデータを与えてください! –

+0

あなたは何を正確にしようとしていますか、なぜですか? – ilansch

答えて

0

、0035. になりますが存在する。しかし、あなたがこの行で何かをする必要がある場合は、キャレット位置がどこにあるので、0034 this postを見ることができます。

2番目の問題については、コードをチェックして、コードから\ r \ nを削除するだけで、新しい行を追加するときに入力する必要があります。 あなたは\ rをする\を維持したいのnキーメイクを入力して新しい行を無効にします

e.SuppressKeyPress=true; 

これを使用することができます。

+0

'AppendText()'新しい行を追加しません! –

+0

はい、あなたは私が編集した通りです。彼が入力したものは新しい行を追加しています。 – mmm

関連する問題