到目前为止,这就是我所拥有的一切。
tabControl1.TabPages[0].???
我的TabControl的TabPage1中有一个PictureBox。
如何使用代码而不是属性窗格更改图像位置?
答案 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 = "...";