如何访问TabControl选项卡内的控件?

时间:2009-08-19 01:47:54

标签: c# .net winforms tabcontrol

到目前为止,这就是我所拥有的一切。

tabControl1.TabPages[0].???

我的TabControl的TabPage1中有一个PictureBox。

如何使用代码而不是属性窗格更改图像位置?

2 个答案:

答案 0 :(得分:7)

虽然控件显示在容器内(作为TabControl),但它们都在表单上定义,因此无需通过容器访问它们。

而不是:


tablControl1.TabPages[0].MyContainedControl...

只需输入:


MyContainedControl...

答案 1 :(得分:7)

除非您在图片框中将GenerateMember设置为false,或者您正在动态构建表单,否则您应该可以通过其名称引用图片框:

pictureBox1.ImageLocation = "...";

否则,假设图片框是第一个标签页中的第一个控件,您可以使用Controls集合:

var picBox = (PictureBox) tabControl1.TabPages[0].Controls[0];
picBox.ImageLocation = "...";

如果您知道某个地方只有一个图片框,但您不确定它所在的页面或该页面上的哪个页面,那么您可以使用Linq:

var picBox = tabControl1.TabPages.Cast<Control>()
    .SelectMany(page => page.Controls.OfType<PictureBox>())
    .First();
picBox.ImageLocation = "...";