如何更改其子窗体在Windows窗体中的父级大小?

时间:2015-07-21 12:40:05

标签: c# winforms size parent

在我的父表单中,我有这个命令,我将一个子表单添加到我的主表单中:

FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                              initWithGraphPath:@"/me?fields=id,name,picture" //As many fields as you need
                              parameters:nil
                              HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    if (!error){
        NSDictionary *picture = [(NSDictionary*)result objectForKey:@"picture"];
        NSDictionary *data = [picture objectForKey:@"data"];
        NSString *url = [data objectForKey:@"url"];
        NSData *dataImage = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];

    }
}];

在我的Form2中我有一个复选框,每次选中复选框时我都要更改我的主表单大小,但是我无法完成这项工作,只创建一个新表单,如下所示: / p>

 AddChildForm(new Form2());

1 个答案:

答案 0 :(得分:2)

如果您不想要新的Form1请勿创建它。

您可能需要引用到真正的主窗体。这应该在打开期间或之后的某个时间设置,但是由于您向我们展示的是4个脱离背景的行,我们无法确定...

由于我们没有看到AddChildForm代码,因此更难猜测。

但是,您可能应该将开始表单中的引用传递给打开的表单,如下所示:

AddChildForm(new Form2(this));  //  <--- pass in reference to the opening form!

将它存储在那里:

Form1 mainForm = null;

public Form2(Form1 form1)   // here we receive the main form reference
{
    InitializeComponent();
    mainForm = form1;      // here we store it in a class level variable
    //..
}

现在您可以设置其他表单大小:

mainForm.Size = new System.Drawing.Size(482, 370);

当然,如果您需要,还应该在主表单中保留对您正在打开的表单的引用。对于这个使用类似的东西:

Form2 form2 = new Form2(this);
..

AddChildForm( form2);