我实际上是想在WinForms中创建类似的东西:https://google-developers.appspot.com/maps/documentation/javascript/examples/full/places-autocomplete-addressform?hl=es
当您编写一些地址时,TextBox会展开并显示建议,并且每次更改TextBox的内容时都会更新。
我使用Google API编写了一个类似GetAddressPredictionsByInput(string input)
的方法,但我不知道何时应该调用它,如何更新示例中的建议,因为如果我每次都更改AutoCompleteCustomSource
调用TextChanged
方法,控件失去焦点,并且对WebService的调用过多也会冻结程序。
希望你理解并帮助我。 抱歉英文不好。
修改
Okey,我认为没有必要,这段代码非常简单,我用文字解释了它,但是你拒绝了我的问题。这是我的代码:private void textBoxEx1_TypingCompleted(object sender, System.EventArgs e)
{
var autoCompleteListCollection = new AutoCompleteStringCollection();
autoCompleteListCollection.AddRange(new GoogleApi.Instance.GetAddressPredictionsByInput(textBoxEx1.Text).ToArray());
textBoxEx1.AutoCompleteCustomSource = autoCompleteListCollection;
}
更新:我部分回答了我自己的问题:
我创建一个继承TextBox的CustomControl,并添加一个在您停止键入2秒后调用的CustomEvent。然后,我调用返回地址数组(字符串)的方法,我想将其显示为建议。