私は texteditor に取り組んでおり、オートコンプリート機能を実装する方法を知りたいです。
別のクラス (KeyWord.cs) にこの文字列のコレクションがあります。
public String[] keywords = { "abstract", "as", "etc." };
public String[] events = { "AcceptRejectRule", "AccessibleEvents", "etc.2" };
ListBox (lb) に既に文字列を入力していることは、既にソートされているメインフォームに配置されています。
lb = new ListBox();
Controls.Add(lb);
//lb.Visible = false;
KeyWord keywordsL = new KeyWord();
KeyWord eventsL = new KeyWord();
foreach (string str in keywordsL.keywords)
{
lb.Items.Add(str);
}
foreach (string str in eventsL.events)
{
lb.Items.Add(str);
}
エディターとして機能する RichTextBox (ハイライト オプションも含む) は rtb として宣言されます。
ここで私の懸念は、RichTextBox(rtb) に文字「A」を入力したときのように、「contexthint」のようにするにはどうすればよいかということでした。非表示のリストボックスがマウスポインターがあった位置に表示され、次にすべての「A」リストボックスにリストされた文字列の先頭に表示されます。最後に、リストボックスから表示されている文字列を選択すると、文字列が RichTextBox に追加されますか?