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

Ser*_*pia 7 .net c# tabcontrol winforms

这就是我到目前为止所做的一切.

tabControl1.TabPages[0].???
Run Code Online (Sandbox Code Playgroud)

我的TabControl的TabPage1里面有一个PictureBox.

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

Alf*_*ers 7

尽管控件出现在容器内(作为TabControl),但它们都在表单上定义,因此无需通过容器访问它们.

代替:


tablControl1.TabPages[0].MyContainedControl...
Run Code Online (Sandbox Code Playgroud)

只需输入:


MyContainedControl...
Run Code Online (Sandbox Code Playgroud)


Nat*_*lch 7

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

pictureBox1.ImageLocation = "...";
Run Code Online (Sandbox Code Playgroud)

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

var picBox = (PictureBox) tabControl1.TabPages[0].Controls[0];
picBox.ImageLocation = "...";
Run Code Online (Sandbox Code Playgroud)

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

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