Dotnet WinForm 建立 FAQ
小气的神 2001.08.31
如何建立你的第一个窗体,希望下面的说明可以成为你快速开始的一个指引.
1. 如何设置一个From的边界
2. 如何建立一个透明的From
3. 如何设置窗体在屏幕中的位置
4. 如何使最小化和最大化按钮不可用
5. 如何使一个窗体不见
6. 如何设置使窗体成为非矩形的.
7. 如何使一个窗体在屏幕的最顶端.
8. 如何显示一个Model和非Model的窗体
9. 如何制作一个MDI的窗体
10. 如何将你的窗体不显示在任务条上.
11. 如何制作一个带启动屏幕的窗体.
12. 如何使你的窗体TrayIcon.
13. 如何修改控制窗体的尺寸和长宽尺寸.
14. 如何建立一个Windows Explorer风格的窗体.
15. 如何设置初始的启动窗体
16. 如何建立一个有背景图像的窗体
--------------------------------------------------------------------------------
1. 如何设置一个From的边界
Form总共有七种不同的边界风格让你设置,你可以在设计时刻也可以运行时通过代码动态的来设置它.这七种边界风格分别是:
None (System.Windows.Forms.FormBorderStyle.None )
Fixed 3D (System.Windows.Forms.FormBorderStyle.Fixed3D)
Fixed Dialog (System.Windows.Forms.FormBorderStyle.FixedDialog)
Fixed Single(System.Windows.Forms.FormBorderStyle.FixedSingle)
Fixed Tool Window(System.Windows.Forms.FormBorderStyle.FixedToolWindow)
Sizable(System.Windows.Forms.FormBorderStyle.Sizable)
Sizable Tool Window
(System.Windows.Forms.FormBorderStyle.SizableToolWindow)
在设计方式下在VS.NET IDE的 Properties window中设置FormBorderStyle属性就可以了.
在运行方式下你可以用代码来完成:
DlgBx1.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
这七种边界类型VB6中就有,没有什么大的变化,运行方式下你需要对照不同的枚举变量进行设置.
2. 如何建立一个透明的From
你可以通过两种方法在设计时刻和运行时刻来做到这一点.
设计时刻,你可以在VS.NET IDE的 Properties window, 设置Opacity 属性达到这个效果.这个值从0.0到1.0 . 0表示完全透明,1.0表示完全不透明.
运行时刻你可以用下面的编码设置窗体的Opactiy属性来做到.具体:
frmTransparentForm.Opacity = 0.76; ( C# )
看得出现在很简单了,你已经不用再去了解什么Alpha变量了.透明始终只是一种效果,不要滥用它.
3. 如何设置窗体在屏幕中的位置
你可以设置窗体的StartPosition属性,VS.NET一般给你一个保守的选项” WindowsDefaultLocation“ 这样系统在Load窗体时将根据用户当前的计算机设置来确定一个值,你也可以在设计时将它改成另一个值”Center”.
如果你一定要在设计方式下确定窗体在屏幕出现的位置你可以先设置StartPosition为Manual,然后设置Location的X和Y的值.
运行时用代码实现似乎更简洁一些:
Form1.Location = new Point (100, 100) ( VB.NET )
当然你也可以分别修改的Location的X和Y值,对应的是窗体的Left和Top属性,比如:
Form1.Left += 200 ( VB.NET )
Form1.Top -= 100 ( VB.NET )
另外一个属性将也将影响窗体在屏幕的位置:DesktopLocation 这个属性主要是在你设置窗体的位置相对于任务栏时非常实用(当你把任务条放在屏幕的顶或左边时,其实相应改动了desktop coordinates (0,0)),你可以这样设置这个不出现在设计属性窗口中的属性,
Form1.DesktopLocation = new Point (100,100)
窗体在屏幕中的位置将主要取决于各自用户具体的硬件和设置情况,所以保守的作法是用默认的” WindowsDefaultLocation”或 ”Center”;专业的作法是自己先获取系统的设置然后编码动态计算后进行设置,不然很容易在屏幕上找不到你的窗体.
4. 如何使最小化和最大化按钮不可用
在设置窗体的Form.MinimizeBox和Form.MaximizeBox 当为True时表示显示,False时表示不可.用编程方式见下:
frmMaxMin.MinnimizeBox = False ( VB.NET)
frmMaxMin.MaxmnimizeBox = True ( VB.NET )
5. 如何使一个窗体不见
我想最直接的办法是你调用 Hide()方法来做到这一点.不过我想提供另一种方法,看了之后你会获得一些其它的启发. ( VB.NET )
Private Const WS_EX_TOOLWINDOW As Int32 = &H80
Private Const WS_POPUP As Int32 = &H80000000
Private Const WS_VISIBLE As Int32 = &H10000000
Private Const WS_SYSMENU As Int32 = &H80000
Private Const WS_MAXIMIZEBOX As Int32 = &H10000
Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
Get
Dim cp As System.Windows.Forms.CreateParams
cp = MyBase.CreateParams
cp.ExStyle = WS_EX_TOOLWINDOW
cp.Style = WS_POPUP Or WS_VISIBLE Or WS_SYSMENU Or WS_MAXIMIZEBOX
cp.Height = 0
cp.Width = 0
Return cp
End Get
End Property
原来是把Height 和Width都设置成0 ,我想这种方式和Hide()调用的底层可能是不同的。
6. 如何设置