我有一个MDI应用程序,我想在我激活的子窗体上访问一个图片框。 令人惊讶的是我无法访问图片框控件。
以下是代码:
private void button5_Click(object sender, EventArgs e)
{
// Determine the active child form.
Form activeChild = this.ActiveMdiChild;
PictureBox mypic = (PictureBox) activeChild...; // cannot see picturebox
}
在childform中:
public PictureBox picbox
{
get
{
return pictureBox1;
}
set
{
pictureBox1 = value;
}
}
我的问题在哪里?
此致
答案 0 :(得分:1)
activeChild
指的是整个MDI孩子。
您使用的Form
类型不会定义picbox
- 您应该使用子表单的正确类类型,或者将引用转换为正确的类型。
此外 - 您只需要访问picbox
属性(已经是正确的类型,因此无需强制转换):
private void button5_Click(object sender, EventArgs e)
{
// Determine the active child form.
ChildForm activeChild = this.ActiveMdiChild as ChildForm;
if(activeChild != null)
{
PictureBox mypic = ((ChildFormClass)activeChild).picbox;
...
}
}
OR:
private void button5_Click(object sender, EventArgs e)
{
// Determine the active child form.
Form activeChild = this.ActiveMdiChild;
PictureBox mypic = ((ChildFormClass)activeChild).picbox;
}
答案 1 :(得分:1)
Form类没有名为“picbox”的属性。只有您自定义设计的表单。使您的代码看起来类似于:
Form2 activeChild = this.ActiveMdiChild as Form2;
if (activeChild != null) {
PictureBox mypic = activeChild.picbox;
// etc...
}
其中“Form2”是表单类的类型名称。