Элемент управления Winforms, который работает как завершение тега ajax - PullRequest
3 голосов
/ 10 марта 2010

Я хочу создать приложение winforms, где вы можете присваивать теги сущности. ofc Я хочу, чтобы клиент многократно использовал существующие теги. Вот почему я хочу чтобы показать им список тегов, пока они печатают (аналогично intellisense в VS и теги-выпадающие даже здесь, в stackoverflow;))

  • Есть ли у вас какие-либо элементы управления, предлагающие эту функцию?
  • могу ли я использовать ComboBox для этого? (здесь мне нужно сбросить его программно - как?)

Я хочу, чтобы список тегов получал фокус ввода, но не терял фокус основной формы, и я хочу, чтобы он был сверху над всеми окнами и даже находился вне области основной формы (как intellisense в vs)

ТНХ!

1 Ответ

1 голос
/ 10 марта 2010

Здесь я сделал функцию, передающую имя таблицы, из которой необходимо выполнить автозаполнение, имя поля, которое должно быть автозаполнением, и поле со списком, на которое нужно ориентироваться.

Попробуйте следующий код:

public void AutoCompleteTextBox(string tableName, string fieldName, ComboBox combToAutoComp)
        {
            AutoCompleteStringCollection txtCollection = new AutoCompleteStringCollection();
            DataTable dtAutoComp = Dal.ExecuteDataSetBySelect("Stored_Procedure", fieldName, tableName);
            if (dtAutoComp.Rows.Count >= 0)
            {
                for (int count = 0; count < dtAutoComp.Rows.Count; count++)
                {
                    txtCollection.Add(dtAutoComp.Rows[count][fieldName].ToString());
                }
            }
            combToAutoComp.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            combToAutoComp.AutoCompleteSource = AutoCompleteSource.CustomSource;
            combToAutoComp.AutoCompleteCustomSource = txtCollection;
        }

Здесь Dal.ExecuteDataSetBySelect - моя реализация, в которой я создаю соединение, команду и адаптер данных для вызова хранимой процедуры. Вы можете заменить его собственной реализацией для того же самого. Для более подробной информации эта ссылка

...