2016-11-10 17 views
-1

私は基本的なコードエディタでアプリケーションを作っています。 オートブラケットを作成するときに問題が発生しました。 私のカーソルがテキストボックスの4行目にあるとき、私は '('これをテキストボックスの1行目に移動し、 '4行目に')を追加します。TextBoxで自動閉じ括弧を取得できません

これは私のコードです:

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

@Thow喜んで助けてください! – Badiparmagi

関連する問題