【问题标题】:ListBox items as AutoCompleteCustomSource for a textboxListBox 项目作为文本框的 AutoCompleteCustomSource
【发布时间】:2011-11-25 15:40:52
【问题描述】:

我已经使用 datasource 属性将一些项目填充到列表框中。现在我需要从列表框中列出的项目中为文本框设置 AutoCompleteCustomSource。准确地说,ListBox 的 DataSource 和 textBox 的 AutoCompleteCustomSource 是相同的。如何在不使用 for 循环的情况下设置 AutoCompleteCustomSource?
仅限.Net 2.0。不支持 LINQ

【问题讨论】:

  • 我使用了DataTable和DataViews来设置dataSource。它有效。

标签: c# .net winforms


【解决方案1】:

AutoCompleteStringCollection 只需要string[],所以应该是这样的:

var cc = new AutoCompleteStringCollection();
cc.AddRange(listBox1.Items.Cast<string>().ToArray());

【讨论】:

  • 哦,很好,我这样做是因为我不想使用 foreach 或 for 循环。
【解决方案2】:

如果你的 ListBox 是一个字符串列表,你应该可以这样做:(untested)

textBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
textBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox.AutoCompleteCustomSource.AddRange((List<String>)listBox.DataSource);

【讨论】:

  • 这不会编译,AutoCompleteStringCollection 只需要 string[]
【解决方案3】:

这是一个类似的问题,答案似乎是合适的。 autocomplete textbox on listbox

另一个类似的问题C# AutoComplete

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 2010-12-21
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2011-03-13
    相关资源
    最近更新 更多