本文目录一览:
- 1、winfrom窗体怎么让子窗体在父窗体中固定位置显示看上去是一个窗体美化
- 2、C# WindowsForm主窗体为什么关闭不了子窗体,只能的开子窗体却不能关闭子窗体
- 3、vs2005中,第一个新建的窗体(form)永远都是父窗体吗?
winfrom窗体怎么让子窗体在父窗体中固定位置显示看上去是一个窗体美化
窗体的StartPosition 属性
StartPosition属性有如下选项,分别含义如下:
CenterParent 窗体在其父窗体中居中。
CenterScreen 窗体在当前显示窗口中居中,其尺寸在窗体大小中指定。
Manual 窗体的位置由 Location 属性确定。
WindowsDefaultBounds 窗体定位在 Windows 默认位置,其边界也由 Windows 默认决定。
WindowsDefaultLocation 窗体定位在 Windows 默认位置,其尺寸在窗体大小中指定。
CenterScreen的意思并不是屏幕居中(是相对的),它是在"当前显示窗口"中居中。
当用Show()方法时应选择CenterScreen,
用ShowDialog()方法时应选择CenterParent,这样才能让要显示的窗口居中。
C# WindowsForm主窗体为什么关闭不了子窗体,只能的开子窗体却不能关闭子窗体
C#里面的窗体时线程创建的!一个窗体就是一个线程的!
从第一个线程楼里面new出来的窗体,是上一个窗体的子线程
所以,当父线程关闭后,就会关闭掉子线程了。
这个方法只能这样解决!
创建一个窗体或者线程,如果是窗体就隐藏这个主窗体(主线程)
在主窗体的Load事件里面,创建你的Form1,比如:
Form f = new Form();
f.m_Handle=this.Handle.toInt64();
f.show();
记得,这个窗体里面需要有个public的全局变量,用来接收父窗体的句柄的。
public long m_Handle;
然后呢,再在你创建的新窗体f中,随意什么事件中,你再使用代码
Form f = new Form();
f.parent=this.m_Handle;
this.close();
这样就可以关闭了!
vs2005中,第一个新建的窗体(form)永远都是父窗体吗?
1. 应该说C#(.net)中的任何窗体(Form)不区分父窗体和子窗体.
即它们中的任何一个都可以作为子窗体或者父窗体使用.真正区分子窗体和父窗体的方法是看他们谁调用了谁.
比如在Form1中调用了Form2.ShowDialog,那么Form1就成为了Form2的父窗体.
2. 你之所以会有父窗体的印象. 是因为新建的Windows窗体类型的工程, 都默认的另Form1作为了"启动对象". 即每次运行程序都首先加载了一个Form1的实例. 其实你可以修改"启动对象"到任意一个泥想要的窗体. 具体的方法如下.-windowsform子父窗体
2.1. 新建一个窗体Form2. (我相信这个你没问题)
2.2. 在"解决方案管理器"中, 打开Program.cs文件, 找到(比较靠后)这一句
"Application.Run(new Form1());"
修改为
"Application.Run(new Form2());"
这样就可以在程序启动时直接打开Form2了.
这应该就是你说的"直接测试子窗体"了吧~
希望对你有帮助.