2017-07-15 85 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的底部,並點擊進入,將添加一個新行工作一次。 如果最後一行是191新的人會192.或者,如果最後一次是000191新的人會000192.如何添加一個新行的RichTextBox未做空間/空行新行之後?

但我有兩個問題:

首先,這是工作僅我滾動到底部並添加新的最後一行後點擊輸入。但是,如果我想添加一個新行並在兩個現有行中間的某個位置給它一個數字?那我如何重新編號?例如,如果我點擊進入線0033和0035之間的鍵,然後按新的生產線是0034,但線0034是已經存在的應該是現在0035和0035將是0036 ...

第二個問題是,在每一次底部我將點擊進入它將使新行空的新行,然後將添加行。我需要的「\ r \ n」來使新的生產線,但隨後下一次我點擊進入,會先做出新的空行。我如何避免空行,但它會在最後一行後添加一個新行?

+0

什麼是padnumbers?給我們更多的數據! –

+0

你想要做什麼,爲什麼? – ilansch

回答

0

對於你的第一個問題,如果你在中間按Enter鍵,它會在底部添加新的行,所以0034存在的將是0035. 但是如果你需要做一些處理插入位置爲你可以看看this post

關於第二個問題,我檢查你的代碼,你只需要,因爲當你按下回車鍵,你增加新的生產線,從你的代碼中刪除\ r \ n。 如果你想保持\ r \ n您可以使用

e.SuppressKeyPress=true; 

這將禁用了輸入鍵使新線。

+0

'AppendText()'不添加新行! –

+0

是的你是對的我編輯,他按輸入增加新行。 – mmm