有没有办法让TextBox中的Text具有附加文本的自动填充功能,但没有附加的部分?我想在Textbox_TextChanged事件中使用此文本。这段代码不起作用
private void Textbox_TextChanged(object sender, EventArgs e)
{
var t = textbox.Text.Substring(0, textbox.SelectionStart);
}
在附加自动填充文本时,似乎会触发TextChanged事件,但在此之后会应用附加文本的选择。
E.g。如果用户输入ho
且自动填充功能包含条目house
,则文本框中包含文本house
,但use
已被选中,并且可在用户继续时覆盖打字。我希望得到ho
- 部分,因为这是用户输入的文字,而没有use
- 部分,它不是来自用户。
答案 0 :(得分:1)
问题是令人困惑的,我提供了一个解释,因为我理解它。
更改文本框中的文本时会触发文本更改事件。您可以使用建议而不是附加
假设文本框名称为" Textbox1"
private void Textbox1_TextChanged(object sender, EventArgs e)
{
this.Textbox1.AutoCompleteMode =
System.Windows.Forms.AutoCompleteMode.Suggest;
var t = Textbox1.Text;
}
答案 1 :(得分:0)
我延迟解决了,所以文本框有时间应用选择。到目前为止,这似乎有效,但如果选择的应用时间超过等待时间,则可能会出现问题。
private async void Textbox_TextChanged(object sender, EventArgs e)
{
await Task.Delay(200);
var t = textbox.Text.Substring(0, textbox.SelectionStart);
}