Solved

String autocompletion with the PropertyGrid

Posted on 2009-05-19
2
1,304 Views
Last Modified: 2012-05-07
Hi,

I'm desesperately looking for a way to implement the autocompletion (predictive value) in the text box of a PropertyGrid control. I want to type my text and get a the same time a possible value to complete the field.

I know how to set a combobox with a set of possible values but this not what i'm looking for. The value entered by the user (always a string) is not always existing in the list of possible values.

Here is the hack i've found, unfortunatly it sets the autocompletion on all fields in my property grid. I look for the possibility to put a different set of possible values by property.

Thanks for your help!
            Dim stringCollection As AutoCompleteStringCollection = New AutoCompleteStringCollection()
            stringCollection.Add("value1")
            stringCollection.Add("value2")
            stringCollection.Add("value3")
 
            SetPropertyGridAutocompletion( _
                                Me.NodeExtendedDataPropertyGrid, _
                                stringCollection)
 
     Private Sub SetPropertyGridAutocompletion( _
                ByVal propertyGrid As System.Windows.Forms.PropertyGrid, _
                ByVal stringCollection As AutoCompleteStringCollection)
 
        Dim propertyGridView As Control = propertyGrid.Controls(2) 'Get reference to property grid view
        Dim propertyGridViewType As Type = propertyGridView.GetType() 'get the type
        Dim pgType As Type = propertyGridViewType 'set this to a local variable
        Dim info As FieldInfo = pgType.GetField("edit", BindingFlags.Instance Or BindingFlags.NonPublic)
 
        ' Get the fieldInfo,which holds the reference to the textbox
        Dim txtBox As TextBox = CType(info.GetValue(propertyGridView), TextBox) 'Cast it to the textBox
 
        txtBox.AutoCompleteCustomSource = stringCollection
        txtBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend
        txtBox.AutoCompleteSource = AutoCompleteSource.CustomSource
 
    End Sub

Open in new window

0
Comment
Question by:stevenhackars
2 Comments
 
LVL 30

Accepted Solution

by:
Alexandre Simões earned 500 total points
ID: 24429840
You need to implement a new type editor for your property:

http://www.codeproject.com/KB/miscctrl/bending_property.aspx
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.

713 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question