C# 如何访问TabControl的TabPage中的控件

C# 如何访问TabControl的TabPage中的控件,c#,winforms,C#,Winforms,我的表单中有两个按钮,TabControl中有两个文本框 我不确定如何使用按钮将文本框的文本保存到剪贴板。 为此,我们尝试将相同的AccessibleName分配给控件 我编写了代码,但不知道如何访问TabControl的TabPages。 最后,有人知道更好的方法吗 public partial class Form1 : Form { private void SaveNumBot(object sender, EventArgs e) { foreach (

我的表单中有两个按钮,TabControl中有两个文本框

我不确定如何使用按钮将文本框的文本保存到剪贴板。
为此,我们尝试将相同的
AccessibleName
分配给控件

我编写了代码,但不知道如何访问TabControl的TabPages。
最后,有人知道更好的方法吗

public partial class Form1 : Form
{
    private void SaveNumBot(object sender, EventArgs e)
    {
        foreach (Control c in this.Controls)
        {
            if (c.AccessibleName == ((Control)sender).AccessibleName)
            {
                if (c is TextBox)
                {
                    Clipboard.SetDataObject(c.Text);
                }
            }
        }
    }

使用模式匹配:

if (c is TextBox textBox)
{
    Clipboard.SetDataObject(textBox.Text);
}

您可以修改foreach循环:

foreach(TabPage tabPage in yourTabControl.Controls)
{
    foreach (TextBox textBox in tabPage.Controls.OfType<TextBox>().Where(x=>x.AccessibleName == ((Control)sender).AccessibleName))
    {
        Clipboard.SetDataObject(textBox.Text);
    }
}

在这里,我们将从控件中找到的第一个文本框中获得1个文本。您还可以选择
Last()
条目。

最后一个示例:我的眼睛@DanielA.White我只建议了一些选项感谢我学到了很多好的代码,但是这个。控件指的是我的表单,我的控制器在tabcontrol上,我的主要问题是我不知道如何在里面寻找控制器tabcontrol@shahab47在这种情况下,您必须运行
yourtab.Controls
,而不是
this.Controls
@Mario Mitterbauer,如果我有几个选项卡,我应该如何搜索?抱歉,这太复杂了:(但我的图片中的主要内容是发烧。不幸的是,这不起作用,因为所有的按钮和文本框都在一个选项卡控件上。如果你看到了,我会放一张我表格的图片,我很感激
Clipboard.SetDataObject(yourTabPage.Controls.OfType<TextBox>()
                        .Where(x=>x.AccessibleName ==((Control)sender).AccessibleName))
                        .ToList()
                        .FirstOrDefault().Text);