2013-06-10 3 views
1

Я работаю над проектом C# winform vs2008. Требование состоит в том, чтобы показать данные о уровне линии в сетке и сетке. Пользователь текстового поля cloumn вводит текст, и он должен заполнять текст автозаполнения. Поиск автозаполнения должен основываться только на одном столбце, но для этого нужно показать дополнительный один столбец. Экзамен: имя и номер телефона. пользователь будет искать на основе имени только дополнительный столбец телефона должен показывать цель.Autocomplete TextBox для C# Winform VS2008 необходимо уточнение

Я следующий запрос:

1) База данных является большим, есть ли свободный автозаполнения 3 инструмента партия доступны.? 2) Как я могу показать многосекундные столбцы в автозаполнении.

Пожалуйста, дайте мне знать, как я могу показать несколько столбцов в автозаполнении.

я застрял здесь .. пожалуйста, помогите мне ..

Спасибо и наилучшими пожеланиями Ram

+0

Это непросто. Я думаю, вам нужно создать свой собственный список DropDown и реализовать все обработчики событий. вау, столько работы. –

+0

Привет, Спасибо за ответ. Должен быть какой-то путь, пожалуйста, дайте мне несколько примеров. В настоящее время я могу показать одну текстовую коллекцию в автозаполнении с помощью namecollections. Я хочу связать еще один столбец. Если я использую Combobox, как я могу назначить 2 столбца. Просьба уточнить. – user2470206

+0

Попробуйте использовать Combobox .. Используйте 'BindingList >' как свой источник данных, а DisplayMember - как Value и ValueMember в качестве ключа. Определите переопределение для ToString() из 'YourClass' таких что он вернет форматированную строку: «Name in 4 tab spaces PhoneNumber» Это может не сработать, если ComboBox внутренне разбирает строку Value своего элемента отображения. –

ответ

0
public Class YourClass 
{ 
    public string Name; 
    { 
     get; 
     private set; 
    } 

    public string PhoneNo; 
    { 
     get; 
     private set; 
    } 

    public override string ToString() 
    { 
     return String.Format("{0,-50} {1,-15}", this.Name, this.PhoneNumber); 
    } 
} 

internal class YourForm : Form 
{ 
    ComboBox YourComboBox = new Combobox(); 
    //Set the style of your combobox such that it looks like a text box 

    BindingList<KeyValuePair<string, YourClass> bl = new Binding<string, YourClass>(); 


    //Query for the data to populate the BindingList 
    //Lets say you put the UserId or ContactId of the person in the Key..   

    YourComboBox.DataSource = bl; 
    YourComboBox.DisplayMember = "Value"; 
    YourComboBox.ValueMember = "Key";  
} 

Делайте то, что когда-нибудь вы делаете для автозаполнения

Там не готовы и элегантный реализация для чего вам нужно. То, что я вам дал бы показать результаты, как в таблице ..

Например: -

  • Риз W 32
  • Памеле 40

, но с именем, принимая о символах пространства в том, что когда-либо шрифт контролирует.
(Вам нужно будет посмотреть этот ответ в режиме редактирования, чтобы увидеть его)

Если вы хотите точно, что вам нужно, вам нужно будет использовать некоторые доступные сторонние элементы управления или написать свой собственный. И, как сказал кто-то, это слишком много кода.

+0

Привет Venat Renuka, Спасибо за ваш ответ. Мое требование - показать дополнительные столбцы (например, 2 столбца), которые не формируют/не добавляют строку и не показывают. Заказчику требуется увидеть два отдельных столбца (например, пример сетки). Пожалуйста помогите. Спасибо заранее. – user2470206

+0

Привет, Большое спасибо за ваш ответ. Клиент должен отображаться только в дополнительном столбце, включая цветной дисплей. Я хочу написать свой собственный контроль. Не могли бы вы посоветовать мне, как я должен начать поток. Если у вас есть какие-либо образцы собственных конт-кодов, любезное сообщение для меня, это будет полезно для меня .. пожалуйста. Благодарю. – user2470206

+0

Привет, Я планирую создать свой собственный контроль автозаполнения (из-за некоторых ограничений, обнаруженных в нескольких столбцах, начальные буквы могут выполнять поиск, сортировку и т. Д.). для этого я получаю результат в текстовом поле автозаполнения и извлекаю строку и отображаю ее в список. Для этого мне нужен быстрый способ поиска. Если я получаю это, я добавлю другие столбцы в поле списка (только с указанием цели) и раскраски и т. Д. Потому что я хочу увеличить будущее в своей автозаполнении и не хочу покупать сторонние элементы управления. Пожалуйста, представьте мне, буду ли я правильно идти или нет .. – user2470206

0

Есть сторонние компоненты, которые могут использоваться для поддержки выпадающего столбца, например, LookUpEdit от DevExpress, UltraCombo от Infragistics и RadMultiColumnComboBox от Telerik. Вы можете изменить фильтр, а затем всплывать выпадающее меню при наборе текста, но это не повлияет на производительность автозаполнения Windows, которая использует второй поток для перечисления кандидатов.

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

+0

Привет, друг, спасибо за ваш ответ .. если вы знаете какой-либо код, чтобы показать несколько столбцов в поле со списком, будет полезно для меня, а не для третьей стороны. Мое требование - автозаполнение основано только на 1 столбце, но мне нужно показать другую функцию разделения столбца. Я понимаю ваше сообщение о производительности. Если я исправлю многоколоночную комбо-версию, я перейду к следующему шагу, чтобы проверить производительность удаленной задачи. Пожалуйста, проверьте и помогите мне. Благодаря тонну. – user2470206

+0

Класс combobox - это оболочка встроенного элемента управления win32 с тем же именем, который не имеет поддержки нескольких столбцов. Вам либо нужно купить компонент, либо написать его с нуля. –

+0

Привет, Поймите. Спасибо за ответ. У вас есть образец кода для написания собственных элементов управления, я хочу начать собственный контроль. Пожалуйста, напишите, если у вас есть .. спасибо. – user2470206

Смежные вопросы