2015-12-06 23 views
1

我想在RichTextBox中爲每一行編號。我已經獲得了使用Lines.Length的行數。如果我開始打字時,它是空白,這將變成1,但是如果我按空格鍵2-3次,然後開始鍵入返回0Richtextbox Lines.Length == -1

(我知道毫無意義)這裏是返回的號碼的功能行,你可以看到(我的失敗嘗試)在那裏我試圖比較它與TextLength糾正值。

private int LineCount() 
{ 
    int textLength = MainIOControl.TextLength; 
    int lineCount = MainIOControl.Lines.Length - 1; 
    return (textLength == 0 && lineCount == 0) ? 0 : lineCount; 
} 

這返回正確的值,如果你剛開始打字,但如果你按空格鍵幾次當它是空的。

我簡單地忽略了一些明顯的東西嗎?

+0

如果按幾次退格的什麼回報,當它是空。什麼意思是什麼時候它是空的,當富文本框是空的或什麼? – mybirthname

+0

@mybirthname'Lines.Length'在按下退格鍵兩次後返回0,但如果您剛剛開始鍵入,則返回1。當它爲空時 - 當richtextbox中沒有文本/數字/任何內容時。 – 73cn0109y

+0

當你執行這個LineCount方法? – mybirthname

回答

1

嘗試自己計算它,而不是使用Lines屬性:

return MainIOControl.Text.Length - MainIOControl.Text.Replace(Environment.NewLine, string.Empty).Length; 

這一個可以更好地爲您的情況:

private int LineCount() 
     { 
      return MainIOControl.Text.Length - MainIOControl.Text.Replace("\n", string.Empty).Length + 1; 
     } 
+0

這似乎很奇怪。第一行返回** 0 **,第二行返回** 2 **,第三 - ** 4 **和第四 - ** 6 **,並繼續像這樣遞增。 – 73cn0109y

+0

看到我的最新變化,RichTextBox似乎沒有實現正確的Environment.NewLine,再加上一個來計算起始行。看看是否有幫助。 – Don

+0

解決了問題並解決了我的問題。謝謝。 – 73cn0109y