C#使用WInodws.Forms GUI执行图像搜索

C#使用WInodws.Forms GUI执行图像搜索,c#,winforms,user-interface,C#,Winforms,User Interface,我构建了一个简单的应用程序,它链接到与浏览器窗口右侧列表框内容相关的图像搜索url,如下所示: 我已经通过引用列表框索引的几个if语句完成了这一点,我希望能找到一个更雄辩的解决方案。到目前为止,每个新的搜索词都必须硬编码并引用相同的图像搜索,是否有可能读取列表框中的文本并执行图像搜索,而不是使用我的解决方案?我的意思是,这是可行的,但必须有更好的办法 public partial class frmCatSearch : Form { public frmCatSea

我构建了一个简单的应用程序,它链接到与浏览器窗口右侧列表框内容相关的图像搜索url,如下所示:

我已经通过引用列表框索引的几个if语句完成了这一点,我希望能找到一个更雄辩的解决方案。到目前为止,每个新的搜索词都必须硬编码并引用相同的图像搜索,是否有可能读取列表框中的文本并执行图像搜索,而不是使用我的解决方案?我的意思是,这是可行的,但必须有更好的办法

 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)
        {

        }
    }
公共部分类frmCatSearch:表单
{
公共研究
{
初始化组件();
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{
//按钮的事件处理程序
//弹出一个包含当前时间/日期的消息框
Show(DateTime.Now.ToString());
}
/// 
///根据所选图像导航到google图像搜索
///列表框项目。
/// 
/// 
/// 
私有无效列表框1\u SelectedIndexChanged(对象发送方,事件参数e)
{
如果(lblArtimus.SelectedIndex==0)
{
artimusBrowser.导航(“https://www.google.com/search");
}
如果(lblArtimus.SelectedIndex==1)
{
artimusBrowser.导航(“https://www.google.com/search");
}
如果(lblArtimus.SelectedIndex==2)
{
artimusBrowser.导航(“https://www.google.com/search");
}
//否则
//{
//artimusBrowser.导航(“https://images.google.com/?gws_rd=ssl");
//}
}
//故意省略的代码
/// 
///将对象加载到列表框中
/// 
/// 
/// 
私有无效frm_加载(对象发送方,事件参数e)
{
//加一些猫
lblArtimus.Items.Add(“巷猫”);
lblArtimus.Items.Add(“美国Bobtail”);
lblArtimus.Items.添加(“Burmilla”);
lblArtimus.项目。添加(“康沃尔雷克斯”);
lblArtimus.项目。添加(“德文雷克斯”);
lblArtimus.Items.添加(“缅因州库恩”);
lblArtimus.Items.添加(“Chesire”);
}
私有无效webBrowser1\u文档已完成(对象发送者,WebBrowserDocumentCompletedEventArgs e)
{
}
}

您只是想从所选项目中获取文本吗?若然,这是否可以:

string searchText = this.listBox1.SelectedItem.ToString();
然后只需搜索searchText的值


不过,我可能错过了您试图在这里实现的目标。

这是答案的一部分,我需要列表框中的文本来执行图像搜索,但如果可能,我希望在每次单击项目时执行新的搜索,而不是引用旧的搜索。