2016-08-16 1 views
0

Прежде чем что-либо еще, я просто хочу извиниться за мой плохой английский. Я не знаю, как это сказать, и у меня был поиск акций, как я могу get the list of items as I input every single text. например, я хочу найти имя Printer. Когда я ввожу первую букву P, все предметы, которые начинаются с P, будут показаны и так далее. Может кто-нибудь, пожалуйста, направил меня на этот учебник? или, может быть, может помочь мне в этом?Отображение списка элементов при вводе каждого отдельного текста

Не стесняйтесь редактировать мой вопрос и, пожалуйста, будьте добры к новичкам, как я. Спасибо

Im используя winform

+0

Нам нужно немного уточнить. Какой пользовательский интерфейс вы используете? WinForms, WPF, ASP.Net, пользовательская библиотека? Как правило, любое текстовое поле будет иметь какое-либо событие/привязку изменения, с которым вы можете подписаться/привязаться. –

+0

Я использую winform –

ответ

0

В WinForms, контроль TextBox имеет KeyUp событие, которое вы можете подписаться. Я предполагаю, что у вас есть TextBox под названием txtSearch на вашей форме. Прикрепите обработчик события к этому событию с помощью конструктора или событие Load в коде-за:

private void Main_Load(object sender, EventArgs e) 
{ 
    txtSearch.KeyUp += txtSearch_KeyUp; 
} 

Затем создать обработчик событий и использовать значение txtSearch для выборки данных/фильтр и т.д.

private void txtSearch_KeyUp(object sender, KeyEventArgs e) 
{ 
    var searchText = txtSearch.Text; 

    //TODO: Do something with the search string 
} 
+0

Что может быть моим заявлением в моей базе данных доступа? –

+0

было бы легко, если я использую поле со списком вместо текстового поля? –

+0

Вы можете использовать либо, в зависимости от того, что вы хотите сделать. ComboBox предоставит вам возможности автозаполнения. Ваш вопрос слишком широк, чтобы ответить здесь. Что вы пробовали? –

0

шаг 1) по форме нагрузки Получить данные из базы данных и заполнить DataTable dtAutocomplete

шаг 2) вызвать этот метод загрузки формы

CompleteSource(dtAutocomplete, txtCity, "City");//(datatable , your textboxname , database feild name you want to bind like printername) 



    public void CompleteSource(DataTable dtsource, TextBox txtname, string fieldname) 
      { 
       AutoCompleteStringCollection autoitem = new AutoCompleteStringCollection(); 

      foreach (DataRow dr in dtsource.Rows) 
      { 
       autoitem.Add(dr[fieldname].ToString()); 
      } 

      txtname.AutoCompleteMode = AutoCompleteMode.Suggest; 
      txtname.AutoCompleteSource = AutoCompleteSource.CustomSource; 
      txtname.AutoCompleteCustomSource = autoitem; 
     } 
Смежные вопросы