Code Editor を作成するために使用するいくつかの置換コードを使用しています。
のシナリオのように、RichTextbox
(コード エディターとして機能する) サンプルにキーワードを入力すると: (rtb) と入力すると、おそらく"Ac"
( lb として宣言された) が表示されます。RichTextbox
ComboBox
内部に文字列を含む context-hint/intellisense のように:
public string[] Accep = { "AcceptRejectRule" };
public string[] Acces = { "AccessibleEvents" };
次に、KeyEvent
args コードを使用します。最後に選択した後に Enter キーを押すComboBox
と、前に入力した単語に置き換えられ
ます。たとえば、 in で"Ac"
始まるすべての文字列を入力すると表示されます。"Ac"
ComboBox
--- これは、richtextbox に入力されたすべての単語に対するものです
if (token == "letterA" || token.StartsWith("Ac") || token.StartsWith("ac") || token.StartsWith("AC"))
{
int length = line.Length - (index - start);
string commentText = rtb.Text.Substring(index, length);
rtb.SelectionStart = index;
rtb.SelectionLength = length;
lb.Visible = true;
KeyWord keywordsHint = new KeyWord();
foreach (string str in keywordsHint.ac)
{
lb.Items.Add(str);
lb.SelectedIndex = lb.FindStringExact(str);
}
}
--- これはKeyEvent
引数です
if (e.KeyCode == Keys.Enter)
{
string Slb = lb.SelectedText.ToString();
var trimmed = RemoveFromStart(Slb, new String[] { "Ac", "Accep", "Acces" });
rtb.SelectedText = trimmed;
lb.Hide();
}
次に、ComboBox
サンプルで選択すると、 ( , )"Ac"
内の AccessibleEvent を選択するために入力します。Enter キーを押すと、 「このパラメーターの上と内部のコードを置き換えると削除される」と宣言されているため、出力が表示されます。ComboBox
"AcceptRejectRule"
"AccessibleEvents"
"AccessibleEvents"
"Ac
//Replacing Parameter:
public string RemoveFromStart(string s, IEnumerable<string> strings)
{
foreach (var x in strings.Where(s.StartsWith))
{
return s.Remove(0, x.Length);
}
return s;
}
しかし、代わりに入力すると、「Ac」がメソッドで使用した最短の文字列だったため、「AccessibleEvent」の代わりに出力
"Acces"
を選択します。"AccessibleEvents"
"AccescessibleEvents"
RemoveFromStart
今私の質問は、コード内のすべての文字列を作成する方法でした:
var trimmed = RemoveFromStart(Slb, new String[] { "Ac", "Accep", "Acces" });
" が最短文字列として宣言されていて"Accep"
も削除することができるため、ユニークです。"Ac
事前にどうもありがとう、あなたが私を助けてくれることを願っています :(