C# 是否可以在表单上设置搜索框来搜索标签

C# 是否可以在表单上设置搜索框来搜索标签,c#,winforms,C#,Winforms,是否可以在表单上设置一个搜索框,在具有多个选项卡的面板中搜索标签,然后转到该标签?是的,您可以在所有控件中搜索文本,然后切换所选选项卡,如下所示 foreach (TabPage tab in tabControl1.TabPages) { var controls = tab.Controls; foreach(Control c in controls) if

是否可以在表单上设置一个搜索框,在具有多个选项卡的面板中搜索标签,然后转到该标签?

是的,您可以在所有控件中搜索文本,然后切换所选选项卡,如下所示

 foreach (TabPage tab in tabControl1.TabPages)
            {
                var controls = tab.Controls; 
                foreach(Control c in controls)
                    if (c.GetType() == typeof(Label))
                    {
//depends if you want to search by label text or name 
                        string txt = c.Text;
                        string name = c.Name;

                        if (txt == textbox1.Text.Trim()) tabControl1.SelectedTab = tab;
                    }
            }

是的,这是绝对可能的。遍历表单子控件,检查它是否是一个标签,然后剩下的就交给你了。这听起来很简单。如果这回答了你的问题,请标记作为答案。我会的,但我无法让它工作,我甚至没有收到错误。是否有任何方法让它更包含文本或类似内容?而不是txt==txtBox1.text。。。使用此iftxt.ToLower.ContainstextBox1.Text.ToLower使用此iftxt.ToLower.ContainstextBox1.Text.ToLower
 Is there anyway of talking off case sensitive 
  private void button4_Click(object sender, EventArgs e)
    {
        foreach (TabPage tab in tabControl1.TabPages)
        {
            var controls = tab.Controls;
            foreach (Control c in controls)
                if (c.GetType() == typeof(Label))
                {
                    //depends if you want to search by label text or name 
                    string txt = c.Text;
                    //string name = c.Name;
                    //MessageBox.Show(txt);
                    if (txt.Contains (textBox2.Text.Trim())) tabControl1.SelectedTab = tab;
                    //MessageBox.Show(textBox2.Text.Trim());
                }