在我的父表单中,我有这个命令,我将一个子表单添加到我的主表单中:
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());
答案 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);