/// <summary> /// handle lsbSite selected index changed, load list of manga /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void lsbSite_SelectedIndexChanged(object sender, EventArgs e) { try { Model.Site site = (Model.Site) this.lsbSite.SelectedItem; this.lsbManga.DataSource = new BindingSource() { DataSource = site.Mangas }; this.lsbManga.DisplayMember = this.lsbManga.ValueMember = "Name"; //initilize auto complete string collection from manga name AutoCompleteStringCollection src = new AutoCompleteStringCollection(); foreach (Manga manga in site.Mangas) { src.Add(manga.Name); } this.txtSearchManga.AutoCompleteMode = AutoCompleteMode.Suggest; this.txtSearchManga.AutoCompleteSource = AutoCompleteSource.CustomSource; this.txtSearchManga.AutoCompleteCustomSource = src; } catch (Exception) { MessageBox.Show("Error occurred, please try again later!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// handle txt search manga text changed event /// search manga which is start with input character /// if text == "", get all list of manga /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void txtSearchManga_TextChanged(object sender, EventArgs e) { try { Model.Site site = (Model.Site) this.lsbSite.SelectedItem; string searchString = this.txtSearchManga.Text.Trim(); List <Manga> mangas; if (string.IsNullOrEmpty(searchString) || string.IsNullOrWhiteSpace(searchString)) { mangas = site.Mangas; } else { mangas = (from manga in site.Mangas where manga.Name.ToUpper().StartsWith(searchString.ToUpper()) select manga).ToList(); } this.lsbManga.DataSource = new BindingSource() { DataSource = mangas }; } catch (Exception) { MessageBox.Show("Error occurred, please try again later!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }