2017-10-05 1 views
-1

J'ai construit une application simple qui relie à l'URL de recherche d'images se rapportant au contenu de la liste déroulante située à droite de la fenêtre du navigateur comme suit:C# perfom Recherche avec GUI WInodws.Forms

https://1drv.ms/i/s!Ar02lrNB2lmbm0g7RF3RY6-T6NHz

J'ai accompli cela avec plusieurs déclarations qui se rapportent à l'index de ma liste, ce que j'espérais est une solution plus éloquente à ce problème. A partir de maintenant, chaque nouveau terme de recherche doit être codé en dur et fait référence à la même recherche d'image, y a-t-il un moyen de lire le texte dans la listbox et d'effectuer une recherche d'image à la place de la solution? Je veux dire que ça fonctionne mais il doit y avoir un meilleur moyen.

public partial class frmCatSearch : Form 
    { 
     public frmCatSearch() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      // Event Handler for the button 
      // Pop up a message box with the current time/date 
      MessageBox.Show(DateTime.Now.ToString()); 
     } 
     /// <summary> 
     /// Navigates to a google image search depending on the selected 
     /// listbox item. 
     /// </summary> 
     /// <param name="sender"></param> 
     /// <param name="e"></param> 
     private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (lblArtimus.SelectedIndex == 0) 
      { 
       artimusBrowser.Navigate("https://www.google.com/search"); 
      } 
      if (lblArtimus.SelectedIndex == 1) 
      { 
       artimusBrowser.Navigate("https://www.google.com/search"); 
      } 
      if (lblArtimus.SelectedIndex == 2) 
      { 
       artimusBrowser.Navigate("https://www.google.com/search"); 
      } 

      //else 
      //{ 
      // artimusBrowser.Navigate("https://images.google.com/?gws_rd=ssl"); 
      //} 
     } 

     //Code purposefully omitted 

     /// <summary> 
     /// Loads objects into listbox 
     /// </summary> 
     /// <param name="sender"></param> 
     /// <param name="e"></param> 
     private void frm_Load(object sender, EventArgs e) 
     { 
      //Add some cats 
      lblArtimus.Items.Add("Alley Cat"); 
      lblArtimus.Items.Add("American Bobtail"); 
      lblArtimus.Items.Add("Burmilla"); 
      lblArtimus.Items.Add("Cornish Rex"); 
      lblArtimus.Items.Add("Devon Rex"); 
      lblArtimus.Items.Add("Maine Coon"); 
      lblArtimus.Items.Add("Chesire"); 

     } 

     private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
     { 

     } 
    } 

Répondre

1

Etes-vous simplement en train d'essayer d'obtenir le texte de l'élément sélectionné? Si oui, faites ceci:

string searchText = this.listBox1.SelectedItem.ToString(); 

Ensuite, il suffit de chercher la valeur de searchText.

Je peut manquer ce que vous essayez d'atteindre ici cependant.

+0

Ce serait une partie de la réponse, je besoin du texte dans la zone de liste afin de faire une recherche d'image, mais ce que je voudrais faire, si possible, est effectuer une nouvelle recherche chaque fois qu'un élément est cliqué plutôt que référencer une ancienne recherche. – shockemc