【问题标题】:Search Suggestions API and AutoComplete TextBox in搜索建议 API 和自动完成文本框
【发布时间】:2017-10-22 08:06:03
【问题描述】:

我有一个类根据传递给它的文本返回一个 Google 建议 列表。我的问题是:

如何使用此类作为文本框工具的 AutoCompleteCustomSource 工作,以便用户可以在其中编写文本,并将该文本发送到此类以在用户编写时带来建议列表,并且用户添加的每一个垃圾都将是添加到将再次发送给课堂以带来更多建议的文本?

例如,对该类的此调用将使用基于“arduino”字的建议列表填充textbox1

SearchSuggestionsAPI search = new SearchSuggestionsAPI();
IList result = (await search.GetSearchSuggestions("arduino"));
for (int i = 0; i < result.Count; i++)
{
    string sent = result[i].ToString();
    textBox1.AutoCompleteCustomSource.Add(result[i].ToString());
    textBox1.AppendText(sent);
    textBox1.AppendText(Environment.NewLine);
}

【问题讨论】:

标签: c#


【解决方案1】:

我还没有尝试过,但是这样的方法可能会起作用:

private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
    var results = (await search.GetSearchSuggestions(textBox1.Text));

    textBox1.AutoCompleteCustomSource.Clear();
    textBox1.AutoCompleteCustomSource.AddRange( results );
}

【讨论】:

  • 我尝试了你的代码,但我有一个错误,因为需要声明“结果”,如果我添加:SearchSuggestionsAPI search = new SearchSuggestionsAPI();我在最后一行代码中有错误,因为“结果”无法转换为字符串 []
  • 我遇到的错误是因为我的类返回一个列表而不是一个数组
  • @khalefa 你应该可以用这样的方式投射它:Array array = results.Cast&lt;string&gt;().ToArray();
  • 感谢您的帮助,我试过了,但出现此错误:无法将“ConsoleApplication1.GoogleSuggestion”类型的对象转换为“System.String”
  • @khalefa 我以为您的GetSearchSuggestions 正在返回String 的列表。如果你的对象实现了ToString() 方法,你可以做var array = results.Select(s =&gt; s.ToString()).ToArray()。您需要在 AutoCompleteCustomSource 中使用的字符串数组...
猜你喜欢
  • 1970-01-01
  • 2020-05-17
  • 2018-02-05
  • 2021-01-27
  • 2015-05-07
  • 1970-01-01
  • 2016-04-27
  • 1970-01-01
  • 2020-07-07
相关资源
最近更新 更多