C# 如何从其他窗体调整windows窗体的大小

C# 如何从其他窗体调整windows窗体的大小,c#,winforms,visual-studio-2013,C#,Winforms,Visual Studio 2013,我有两张windows窗体。第一个(选框)是默认值,在运行解决方案时运行,另一个称为: config configForm = new config(); configForm.Show(); 我在configForm上有一个名为TXTwidth的文本框组件和另一个名为txtHeight的组件。我还申请了一个按钮。在选框形式中,我得到了一个函数: public void ApplySettings() { int width = Convert.ToInt32(configForm.t

我有两张windows窗体。第一个(选框)是默认值,在运行解决方案时运行,另一个称为:

config configForm = new config();
configForm.Show();
我在configForm上有一个名为TXTwidth的文本框组件和另一个名为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调用该方法。如果我创建一个新的选框窗体并使用MarqueNew.ApplySettings(),则宽度结果为0,并显示一个错误


如何将属性从configForm更改为marquee表单?我可以反其道而行之,但那对我没有帮助

最简单的方法是在您的选框窗体上创建一个带有宽度和高度参数的公共方法。这样,您就可以在不使用控件引用的情况下传递这些属性,或者在传递过程中不获取额外属性

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

例如,在configForm中:(MarqueeForm是margquee表单类的类型)

公共选框形式{get;set;}

就在configForm.Show()之前;,加: configForm.MarqueeForm=此

在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);

最简单的方法是在您的选框窗体上创建一个带有宽度和高度参数的公共方法。这样,您就可以在不使用控件引用的情况下传递这些属性,或者在传递过程中不获取额外属性

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

例如,在configForm中:(MarqueeForm是margquee表单类的类型)

公共选框形式{get;set;}

就在configForm.Show()之前;,加: configForm.MarqueeForm=此

在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);

最简单的方法是在您的选框窗体上创建一个带有宽度和高度参数的公共方法。这样,您就可以在不使用控件引用的情况下传递这些属性,或者在传递过程中不获取额外属性

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

例如,在configForm中:(MarqueeForm是margquee表单类的类型)

公共选框形式{get;set;}

就在configForm.Show()之前;,加: configForm.MarqueeForm=此

在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);

最简单的方法是在您的选框窗体上创建一个带有宽度和高度参数的公共方法。这样,您就可以在不使用控件引用的情况下传递这些属性,或者在传递过程中不获取额外属性

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

例如,在configForm中:(MarqueeForm是margquee表单类的类型)

公共选框形式{get;set;}

就在configForm.Show()之前;,加: configForm.MarqueeForm=此

在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);

将此方法与
get一起放入一个新的
;设置属性

比如:

public class MyClassName
{
    public int Height {get; set;} 
    public int Width {get; set;} 
}
一旦开始,在form1.load事件中,使用
MyClassName.Height=this.Height设置这些值

然后,在第二个表单的加载事件中,设置该值

this.Height = MyClassName.Height


否则,手动将边框设置为“无”(因此用户无法调整大小)

将此方法与
get一起放入新的
类中;设置属性

比如:

public class MyClassName
{
    public int Height {get; set;} 
    public int Width {get; set;} 
}
一旦开始,在form1.load事件中,使用
MyClassName.Height=this.Height设置这些值

然后,在第二个表单的加载事件中,设置该值

this.Height = MyClassName.Height


否则,手动将边框设置为“无”(因此用户无法调整大小)

将此方法与
get一起放入新的
类中;设置属性

比如:

public class MyClassName
{
    public int Height {get; set;} 
    public int Width {get; set;} 
}
一旦开始,在form1.load事件中,使用
MyClassName.Height=this.Height设置这些值

然后,在第二个表单的加载事件中,设置该值

this.Height = MyClassName.Height


否则,手动将边框设置为“无”(因此用户无法调整大小)

将此方法与
get一起放入新的
类中;设置属性

比如:

public class MyClassName
{
    public int Height {get; set;} 
    public int Width {get; set;} 
}
一旦开始,在form1.load事件中,使用
MyClassName.Height=this.Height设置这些值

然后,在第二个表单的加载事件中,设置该值

this.Height = MyClassName.Height

否则,请手动将边框设置为“无”(因此用户无法调整大小)

然后,在创建新表单时,可以执行以下操作:

...
Forms.marqueeForm = new Marquee(...);
...
然后,从配置中,您可以执行以下操作

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