属性网格字段的自动完成

时间:2010-12-14 16:35:42

标签: .net combobox autocomplete propertygrid typeconverter

我将一个类设置为属性网格的源对象。值来自值列表:

class Person
{
    ...

    [TypeConverter(NationalityStringConverter)]
    public string Nationality
    ...

class NationalityStringConverter: StringConverter
{
    public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
    {
        return true;
    }

    public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
    {
        return true;
    }

    public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
    {
        // return my value collection

现在我的问题。可以将此列表作为建议列表。以同样的方式将它设置为ComboBox,如:

comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;

Thx 4答案

2 个答案:

答案 0 :(得分:0)

只是尝试访问属性网格添加的Combobox项目。 我不知道这是否可行,但值得一试;)

答案 1 :(得分:0)

如果您创建自定义UITypeEditor,您应该能够覆盖行为并创建自己的列表框,您可以在使用IWindowsFormsEditorService.DropDownControl调用EditValue时显示该列表框。这可能会让您访问所需的控件。

PropertyGrid还有一个ControlAdded事件,您可以使用它来访问它为编辑而创建的列表框。

我目前正在与PropertyGrid摔跤,所以我不确定这些选项中的任何一个是否能满足您的需求,但它可能有所帮助。