2013-02-28 85 views
0

我得到了一個行編號的代碼,它對於常規方式編號行非常合適,但我正在尋找一些有點不同的東西。我希望我的代碼只在計算換行符時按下回車鍵(程序收到返回鍵碼),而不是文本框自動切換換行。這是我現在使用的代碼:C#需要幫助編輯我的行編號代碼

//Instructions 
    int maxLC = 1; //maxLineCount - should be public 
    private void InstructionsSyncTextBox_KeyUp(object sender, KeyEventArgs e) 
    { 
     int linecount = InstructionsSyncTextBox.GetLineFromCharIndex(InstructionsSyncTextBox.TextLength) + 1; 
     if (linecount != maxLC) 
     { 
      InstructionsLineNumberSyncTextBox.Clear(); 
      for (int i = 1; i < linecount + 1; i++) 
      { 
       InstructionsLineNumberSyncTextBox.AppendText(Convert.ToString(i) + "\n"); 
      } 
      maxLC = linecount; 
     } 
    } 

如何,我認爲我會做最簡單的就是通過保存行計數每次有人按下回車鍵的清單,並每次有人按下回車鍵將更新線路數字texbox與列表中的位置處的每個行號。但我不知道如何檢測退貨何時被刪除。任何人都知道如何解決這個問題?

+0

你就不能使用正則表達式和搜索\ R的所有實例? – 2013-02-28 03:38:56

回答

0

計數在你的代碼行非常簡單的例子,你貼:

class Program 
    { 
     static void Main(string[] args) 
     { 
      string stringFromTextBox = 
@" int maxLC = 1; //maxLineCount - should be public 
    private void InstructionsSyncTextBox_KeyUp(object sender, KeyEventArgs e) 
    { 
     int linecount = InstructionsSyncTextBox.GetLineFromCharIndex(InstructionsSyncTextBox.TextLength) + 1; 
     if (linecount != maxLC) 
     { 
      InstructionsLineNumberSyncTextBox.Clear(); 
      for (int i = 1; i < linecount + 1; i++) 
      { 
       InstructionsLineNumberSyncTextBox.AppendText(Convert.ToString(i) + ""\n""); 
      } 
      maxLC = linecount; 
     } 
    }"; 
      Regex r = new Regex("\r", RegexOptions.Multiline); 
      int lines = r.Matches(stringFromTextBox).Count; 
      //You'll need to run this line every time the user presses a key 

     } 
    } 
+0

我不知道你是否錯過了我所寫的內容,或者你是否在拖釣,但這絕不是我需要的幫助。我需要編輯的代碼只計算回報,不計算行我int他的代碼張貼... – 2013-02-28 22:09:26

+0

我發佈的代碼完全是這樣的,它計算了字符串中的所有返回。如果您需要保留每個返回的位置,則由'r.Matches'返回的'MatchCollection'也將包含該數據。除此之外,你將不得不澄清你的問題,因爲這就是你問的問題。 – 2013-03-01 03:17:14