2013-10-24 101 views
0

我有RichTextBox,每次載入表單時都會加載一定的默認文本。防止某些文本在RichTextBox中被刪除或更改

本文例如:

// Do not Exclude this line below 

我可以在新行添加文本,如有必要刪除,但絕不能此行。

如果我刪除單詞「下面」的「e」,它必須回覆到「下面」單詞。相同的添加空間或字符。

我開始了這個代碼在KeyDown事件:

Regex donotexclude = new Regex(@"//\s+\s+\s+\s+\s+\s+Do\s+not\s+exclude\s+line\s+below"); 
      MatchCollection donotexcluDE = donotexclude.Matches(rtb_JS.Text); 

      // if (Keys.Space && 

      foreach (Match DONOTEXCLUDE in donotexcluDE) 
      { 

       if (DONOTEXCLUDE.Success) 
       { 
        var donot = DONOTEXCLUDE.Groups[0].Value.ToString(); 

        //if (!donot.Length => 
        //{ 

        //} 
       } 
       else 
       { 

       } 
      } 

,但我不知道我應該補充什麼樣的代碼,或者如果個人混合泳第一名做了錯誤的事情。

現在我的問題是「如何保護RichTextBox中的某些文本免受刪除或更改」。

感謝和更多的力量!

回答

2

不要重新發明輪子。利用SelectionProtected屬性

richTextBox.Rtf = ...; 
richTextBox.SelectAll(); or richTextBox.Select(start, length)//Select that line 
richTextBox.SelectionProtected = true; 
richTextBox.SelectionLength = 0; 
+0

什麼是Rtf? – Elegiac

+0

Rtf只是設置文本,從不知道,如果你已經設置了'Text' –

+0

我應該爲...放在richTextBox.Rtf = ...? – Elegiac