Textbox+Autocomplete auch mit ähnlichen Treffern?

14/05/2009 - 13:40 von Klaus Mayer | Report spam
Hallo,

gibt es eine Möglichkeit, das mir die Autocomplete-Fkt. auch àhnliche
Treffer aus der Liste anzeigt und nicht nur die, welche exakt mit der
bereits eingegebenen Zeichenfolge am Anfang übereinstimmen (sowas wie
ein like '%...%' im Sql)?

Für Eure Tipps dankend,

Klaus
 

Lesen sie die antworten

#1 Frank Dzaebel
16/05/2009 - 12:16 | Warnen spam
Hallo Klaus,

gibt es eine Möglichkeit, das mir die Autocomplete-Fkt. auch àhnliche
Treffer aus der Liste anzeigt und nicht nur die, welche exakt mit der
bereits eingegebenen Zeichenfolge am Anfang übereinstimmen (sowas wie
ein like '%...%' im Sql)?



direkt von .NET supported nicht.

Es gibt Möglichkeiten, weil die TextBox unter Windows
(dokumentiert) ein natives EditControl ist und somit deren
interne IAutoComplete-Interfaces genutzt werden können.
Ist aber trotzdem alles mit den bekannten Einschrànkungen
und Gefahren (andere OS etc.).

Sind das vielleicht URLs im AutoCompleteSource,
oder Wortanfangsbuchstaben?
Denn dann könntest Du ggf. folgendes benutzen:

[CodeProject: C# does Shell, Part 4]
http://www.codeproject.com/KB/shell...hell4.aspx

Wobei obiger Artikel veraltet ist. Zum Beispiel kannst
Du für die AutoCompleteOptions aktueller folgendes benutzen:

/// <summary>
/// Specifies values used by "IAutoComplete2.GetOptions" and
/// "IAutoComplete2.SetOptions" for options surrounding autocomplete.
/// </summary>
/// <remarks>
/// [AUTOCOMPLETEOPTIONS Enumerated Type ()]
/// http://msdn.microsoft.com/en-us/lib...62479.aspx
/// </remarks>
[Flags]
public enum AUTOCOMPLETEOPTIONS
{
/// <summary>Do not autocomplete.</summary>
ACO_NONE = 0x0000,

/// <summary>Enable the autosuggest drop-down list.</summary>
ACO_AUTOSUGGEST = 0x0001,

/// <summary>Enable autoappend.</summary>
ACO_AUTOAPPEND = 0x0002,

/// <summary>Add a search item to the list of
/// completed strings. When the user selects
/// this item, it launches a search engine.</summary>
ACO_SEARCH = 0x0004,

/// <summary>Do not match common prefixes, such as
/// "www." or "http://".</summary>
ACO_FILTERPREFIXES = 0x0008,

/// <summary>Use the TAB key to select an
/// item from the drop-down list.</summary>
ACO_USETAB = 0x0010,

/// <summary>Use the UP ARROW and DOWN ARROW keys to
/// display the autosuggest drop-down list.</summary>
ACO_UPDOWNKEYDROPSLIST = 0x0020,

/// <summary>Normal windows display text left-to-right
/// (LTR). Windows can be mirrored to display languages
/// such as Hebrew or Arabic that read right-to-left (RTL).
/// Typically, control text is displayed in the same
/// direction as the text in its parent window. If
/// ACO_RTLREADING is set, the text reads in the opposite
/// direction from the text in the parent window.</summary>
ACO_RTLREADING = 0x0040,

/// <summary>[Windows Vista and later]. If set, the
/// autocompleted suggestion is treated as a phrase
/// for search purposes. The suggestion, Microsoft
/// Office, would be treated as "Microsoft Office"
/// (where both Microsoft AND Office must appear in
/// the search results).</summary>
ACO_WORD_FILTER = 0x0080,

/// <summary>[Windows Vista and later]. Disable prefix
/// filtering when displaying the autosuggest dropdown.
/// Always display all suggestions.</summary>
ACO_NOPREFIXFILTERING = 0x0100
}


Ggf. ist ACO_SEARCH für Dich hier interessant.

Wenn das nichts für Dich ist musst Du mehr Aufwand treiben.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen