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