Я пытаюсь использовать функцию AutoComplete
для текстовых полей в моем приложении winforms.
Текстовое поле используется для отправки некоторых команд GPIB / SCPI на инструмент.Поэтому, прежде чем я получил представление об автозаполнении, оно работало нормально, но с автозаполнением событие KeyPress
больше не работает.
Код, который я написал, выглядит так:
//AutoComplete collection
AutoCompleteStringCollection _commandHistory = new AutoCompleteStringCollection();
public Form1() //Constructor
{
InitializeComponent();
_commandHistory.AddRange(new string[3]{"*IDN?", "*RST", ":READ?"});
tbCommandLine.AutoCompleteSource = AutoCompleteSource.CustomSource;
tbCommandLine.AutoCompleteCustomSource = _commandHistory;
tbCommandLine.AutoCompleteMode = AutoCompleteMode.Append;
}
Ивот что я определил для события KeyPress
private void tbCommandLine_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
{
SendCommand(tbCommandLine.Text.Trim()); //Send Command
_commandHistory.Add(tbCommandLine.Text.Trim()); //Store command in autocomple source
tbCommandLine.Text = String.Empty; //clear textbox
}
}
После того, как я добавил автозаполнение, если я нажму клавишу ввода или введу что-нибудь из источника автозаполнения, текст в текстовом поле будет подсвечен иклавиша ввода ничего не сделает.