如何检测游标位置是否在richtextbox中的某些字符之间

时间:2017-01-07 10:04:02

标签: c# winforms visual-studio visual-studio-2015

所以我试图在Winforms中创建一个编辑器应用程序,允许我进行自动括号对齐。我目前有一个richtextbox,当我按下开括号时,它会创建一个右括号。

我要做的下一件事是当我的光标位于开始和结束括号之间时我按下回车键,结束括号会比开始括号更多地放置2行,并且光标会进一步放置一行标签插入。

我的主要问题是,如何检测光标是否在2个特定字符之间?结束括号和光标的位置是可选的。

1 个答案:

答案 0 :(得分:0)

public void addTabToText()
    {
      int caretPos = myTextBox.SelectionStart; //Get the start position
      if(caretPos != 0 && caretPos!=myTextBox.Text.Length) //if not at the end or start
      {
        if(myTextBox.Text[caretPos-1]=='(' && myTextBox.Text[caretPos]==')'){
          myTextBox.Text = myTextBox.Text.Insert(caretPos, "  ");
          //to change cursor position
          myTextBox.SelectionStart = caretPos + 2; // length of string added 
          myTextBox.SelectionLength = 0;
        }
      }
    }

在这里,我使用SelectionStart检查上一个字符和下一个字符。您可以通过Enter按下的活动来致电。