2016-11-10 76 views
-1

我正在爲自己製作基本代碼編輯器的應用程序。 當創建自動括號時,我遇到了一個問題。 當我的光標是在文本框中的第4行和我按下「(」它移動「(」到線文本框1和在其線增加了一個「)」 4.無法在文本框中自動關閉括號

這是我的代碼:

private void editorTB_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     bool CSharpMode = true; 

     if (CSharpMode == true) 
     { 
      if (e.KeyChar == '(') 
      { 
       editorTB.Text += ")"; 
      } 
     } 
    } 

editorTB是我richtextbox1控制。

我希望有人能幫助我解決這個問題。在此先感謝!

+1

你需要顯示更多的代碼,你在哪裏設置editorTB的值? – Jawad

+0

我剛剛創建了一個文本框控件並將其命名爲editorTB。 – Thow

+0

將editorTB.Text更改爲textbox1.Text,以便更容易理解 – Thow

回答

1

這段代碼插入後")"炭炭"("中的任何位置文本框。

情況:TEXT(

輸出:文本()

情況1:TE(XT

輸出1:TE()XT

檢查此keypress事件。關鍵是這裏e.Handled是真的。否則它不會工作。

 if (e.KeyChar == '(') 
     { 
      e.Handled = true; 
      const string insertText = ")"; 
      var selectionIndex = textBox1.SelectionStart;   
      textBox1.Text = textBox1.Text.Insert(selectionIndex, "("); 
      textBox1.Text = textBox1.Text.Insert(selectionIndex +1, insertText); 
      textBox1.SelectionStart = selectionIndex + insertText.Length; 
     } 
+0

這個完美的作品。感謝Badiparmagi! – Thow

+0

@很高興幫助! – Badiparmagi

相關問題