FormWindowState.CenterScreen //窗体在当前显示窗口中居中,其尺寸在窗体大小中指定。
FormWindowState.WindowsDefaultLocation //窗体定位在 Windows 默认位置,其尺寸在窗体大小中指定。

FormWindowState.WindowsDefaultBounds //窗体定位在 Windows 默认位置,其边界也由 Windows 默认决定。
FormWindowState.CenterParent //窗体在其父窗体中居中。
例如:
Form1.FormWindowState = System.Windows.Forms.FormWindowState.Manual
===多窗体同时显示时,将某窗体移到最前===
this.Focus() 或 formname.Focus() //让此窗体得到焦点,就可以让它在最前面显示
===判断另一窗体是否打开===
判断另一窗体是否打开,如果没有打开就new出来。如果已经打开就把它显示到最前
通过在子窗体中添加一个静态bool变量就可以。
例子:
在主窗体中:
在子窗体中:
===多窗体间的传参和传对象===
说明:父子窗体传参中由于子窗体是由父窗体创建的,所以子窗体无法直接调用主窗体(包含)中的
一切对象。实现方法是通过在父窗体中将父窗体的对象或属性赋给实例化完的子窗体对象中的某个对象
或属性。如果对象和属性中存放的是非“类型”,那么由于对象都是引用类型,所以它们指向的都是
同一个对象,修改的也是同一个对象。
1.Tag属性法与public法!
如果是子窗体向主窗体传参,可以通过子窗体的Tag属赋方法把参数或对象向主窗体中传递。
当把一个tag属性设置为对象类型时,在主窗体中引用时需用强类型转换成对应类型后才能正常使用。
如:子窗体中
form2.tag=this.textbox;
在form1主窗体中
this.textbox.text=((TextBox)form2.tag).text;
说明:由于窗体中的控件都被程序默认设置为private,所以在主窗体中也无法用form2.textbox.text
来引用。当然,你也可以手动更改该控件的private为public。这样就可以在主窗体中直接引用。richtextbox 换行
还可以用其它方法传递参数:
2,自定义公用public属性法,也叫中间公用变量法(类于上面的public法)
多窗体间传递参数,可用在交窗体类中设置一个自定义公用的、静态的(在主窗体中使用)全局变量如:
对于一般:
public static int aaa = 0;
或 对于对象:
public static TextBox txtT2=this.txtT1;
然后将它们封装成属性。
这样就可以在其它窗体里用FORM.aaa(类名.属性名)的方法进行数据传递
当然对于简单的变量也可以不封装属性。
3,构建函数法
通过构建函数在实例化时传参
例如,form1通过带参的构建函数来创建实例化form2
//form1 code
TextBox ttt;
Form2 form2 = new Form2(ttt)
//在form2中声明类型并添加一个构建函数
TextBox frmtxt;
public Form2(TextBox txt)
{
InitializeComponent();
this.frmtxt = txt;
}
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-34656-3.html
你来鉴定吧