C#:如何在WinForms中使用Google API制作自动完成文本框

时间:2016-08-25 03:58:07

标签: c# winforms web-services api autocomplete

我实际上是想在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。然后,我调用返回地址数组(字符串)的方法,我想将其显示为建议。

0 个答案:

没有答案