2014-09-24 82 views
0

我有两个窗体窗体。第一个(字幕)是默认的一个,那就是运行解决方案时运行,而另一个被称为是这样的:如何从另一个窗体调整窗体大小

config configForm = new config(); 
configForm.Show(); 

我有一个文本框组件上configForm称为txtWidthand另一个叫txtHeight。我也有一个按钮应用。在滚动字幕的形式,我得到这样的功能:

public void ApplySettings() 
{ 
    int width = Convert.ToInt32(configForm.txtWidth.Text); 
    int height = Convert.ToInt32(configForm.txtHeight.Text); 

    if (width > 0 && height > 0) { this.Size = new Size(width, height); } 

} 

我不知道该怎么称呼从configForm该方法。如果我创建一个新的选取框窗体并使用marqueeNew.ApplySettings(),则宽度结果为0,并显示错误。

我该如何将configForm中的属性更改为选取框表单?我可以以相反的方式做到这一点,但这并不能帮助我!

回答

1

最简单的方法是使用Width和Height参数在您的选取框窗体上创建一个PUBLIC方法。那样的话,你可以在没有控制引用或者获得额外属性的情况下传递它们。

*更新 - 您可以通过在子窗体上添加一个公共属性,在子窗体上创建对主窗体的引用。通过这种方式,您可以在两种形式中避免与所有者/父母关系的任何副作用。

例如,在您的configForm:(MarqueeForm是你margquee窗体类的类型)

公共MarqueeForm {获得;设置;}

就在你的configForm.Show();,之前添加: configForm.MarqueeForm = this;

在你的configForm中,你应该可以引用属性MarqueeForm.ApplySettings(X,Y);

我没有完整的代码,因此您可能会遇到一些数据分析问题,但这应该指向正确的方向。

public void ApplySettings(int Height, int Width) 
{ 
    if (Width > 0 && Height > 0) { this.Size = new Size(Width, Height); } 
} 

myForm.ApplySettings(100,200); 
+0

但是,我如何访问该方法?在选取框中,我创建了配置表单并执行configForm.Show ...它工作。但如果在configForm中创建一个新的选取框表单,我可以按照你所说的做,但它是一个新表单,而不是现有的保证金表单... – 2014-09-24 15:46:37

+0

为什么需要检查表单的高度和宽度是否大于0? – 2014-09-24 15:50:54

+0

@ NinjaMid76我把公共的MarqueeForm {get;设置;}(与正确的类名),我得到和该行的错误。 “无法找到类型或名称空间获取” – 2014-09-24 17:38:30

2

将这种方法引入了新的class,具有get; set;财产一起。

类似:

public class MyClassName 
{ 
    public int Height {get; set;} 
    public int Width {get; set;} 
} 

一旦开始了,就form1.load事件,使用MyClassName.Height = this.Height;

然后,在你的第二个窗体的Load事件设置这些值,设定值。

this.Height = MyClassName.Height 

否则,

0
public static class Forms 
{ 
    public Marquee marqueeForm; 
} 

然后,当你创建新的形式,你可以做一些设置为none边框(因此不能由用户调整)手动设置像下面这样:

... 
Forms.marqueeForm = new Marquee(...); 
... 

然后,从你的配置,你可以做以下

Forms.marqueeForm.ApplySettings(this.txtWidth.Text, this.txtHeight.Text); 

点击应用按钮后。或者,更直接地,点击配置表单上的“apply”可以直接修改marqueeForm的尺寸。只需将ApplySettings()方法更改为ApplySettings(string widthStr, string heightStr)即可。