转载VB设置窗体.docx
《转载VB设置窗体.docx》由会员分享,可在线阅读,更多相关《转载VB设置窗体.docx(15页珍藏版)》请在冰豆网上搜索。
转载VB设置窗体
1、VB.NET设置窗体 2010-11-1816:
42 阅读(117)
∙赞
∙评论
(1)
∙转载(13)
∙分享
∙复制地址
∙收藏夹按钮收藏
∙更多
上一篇 | 下一篇:
3、程序反向铣_分...
1.如何设置一个From的边界
2.如何建立一个透明的From
3.如何设置窗体在屏幕中的位置
4.如何使最小化和最大化按钮不可用
5.如何使一个窗体不见
6.如何设置使窗体成为非矩形的.
7.如何使一个窗体在屏幕的最顶端.
8.如何显示一个Model和非Model的窗体
9.如何制作一个MDI的窗体
10.如何将你的窗体不显示在任务条上.
11.如何制作一个带启动屏幕的窗体.
12.如何使你的窗体TrayIcon.
13.如何修改控制窗体的尺寸和长宽尺寸.
14.如何建立一个WindowsExplorer风格的窗体.
15.如何设置初始的启动窗体
16.如何建立一个有背景图像的窗体
==========================================================================================
1.如何设置一个From的边界
form总共有七种不同的边界风格让你设置,你可以在设计时刻也可以运行时通过代码动态的来设置它.这七种边界风格分别是:
none(System.Windows.Forms.FormBorderStyle.None)
fixed3D(System.Windows.Forms.FormBorderStyle.Fixed3D)
fixedDialog(System.Windows.Forms.FormBorderStyle.FixedDialog)
fixedSingle(System.Windows.Forms.FormBorderStyle.FixedSingle)
fixedToolWindow(System.Windows.Forms.FormBorderStyle.FixedToolWindow)
sizable(system.windows.forms.formborderstyle.sizable)
sizableToolWindow
(system.windows.forms.formborderstyle.sizabletoolwindow)
在设计方式下在IDE的Propertieswindow中设置FormBorderStyle属性就可以了.
在运行方式下你可以用代码来完成:
dlgbx1.formborderstyle=System.Windows.Forms.FormBorderStyle.FixedDialog
这七种边界类型VB6中就有,没有什么大的变化,运行方式下你需要对照不同的枚举变量进行设置.
2.如何建立一个透明的From
你可以通过两种方法在设计时刻和运行时刻来做到这一点.
设计时刻,你可以在IDE的Propertieswindow,设置Opacity属性达到这个效果.这个值从0.0到1.0.0表示完全透明,1.0表示完全不透明.
运行时刻你可以用下面的编码设置窗体的opactiy属性来做到.具体:
frmtransparentform.opacity=0.76;(C#)
看得出现在很简单了,你已经不用再去了解什么alpha变量了.透明始终只是一种效果,不要滥用它.
3.如何设置窗体在屏幕中的位置
你可以设置窗体的startposition属性,一般给你一个保守的选项”WindowsDefaultLocation“这样系统在Load窗体时将根据用户当前的计算机设置来确定一个值,你也可以在设计时将它改成另一个值”Center”.
如果你一定要在设计方式下确定窗体在屏幕出现的位置你可以先设置startposition为manual,然后设置location的x和y的值.
运行时用代码实现似乎更简洁一些:
Form1.Location=newPoint(100,100)(VB.NET)
当然你也可以分别修改的Location的X和Y值,对应的是窗体的Left和Top属性,比如:
form1.left+=200(VB.NET)
form1.top-=100(VB.NET)
另外一个属性将也将影响窗体在屏幕的位置:
desktoplocation这个属性主要是在你设置窗体的位置相对于任务栏时非常实用(当你把任务条放在屏幕的顶或左边时,其实相应改动了desktopcoordinates(0,0)),你可以这样设置这个不出现在设计属性窗口中的属性,
form1.desktoplocation=newPoint(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)
PrivateConstWS_EX_TOOLWINDOWAsInt32=&H80
PrivateConstWS_POPUPAsInt32=&H80000000
PrivateConstWS_VISIBLEAsInt32=&H10000000
PrivateConstWS_SYSMENUAsInt32=&H80000
PrivateConstWS_MAXIMIZEBOXAsInt32=&H10000
ProtectedOverridesReadOnlyPropertyCreateParams()AsSystem.Windows.Forms.CreateParams
Get
DimcpAsSystem.Windows.Forms.CreateParams
cp=MyBase.CreateParams
cp.ExStyle=WS_EX_TOOLWINDOW
cp.Style=WS_POPUPOrWS_VISIBLEOrWS_SYSMENUOrWS_MAXIMIZEBOX
cp.Height=0
cp.Width=0
Returncp
EndGet
EndProperty
原来是把Height和Width都设置成0,我想这种方式和Hide()调用的底层可能是不同的。
6.如何设置使窗体成为非矩形的.
这个问题我想我提供的不是最专业的作法,至少它还不能达到我期望的那样,也就是说它在某些事件中它还会变回矩形.但至少我可以告诉你:
如果试图调用原来的win32’sAPISetWindowRng是不行的,我曾如此的尝试过.现在你可能需要知道有关窗体的Region属性
'//(VB.NET)
PublicSubSetWindowRegion()
DimFormPathAsSystem.Drawing.Drawing2D.GraphicsPath
DimRegAsDrawing.Region
DimlRetAsLong
FormPath=NewDrawing2D.GraphicsPath()
FormPath.AddEllipse(NewRectangle(0,0,250,120))
Me.Region=NewRegion(FormPath)
EndSub
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
Me.Region=Nothing
SetWindowRegion()
EndSub
ProtectedOverridesSubOnResize(ByValeAsSystem.EventArgs)
Me.Region=Nothing
SetWindowRegion()
EndSub
7.如何使一个窗体在屏幕的最顶端.
这是很实用的一个功能,现在你不用在调用其它api了,只用设置topmost属性为True就可以了.对于这个属性在设计时刻和运行时刻都是可以进行修改的.代码方式:
myTopForm.TopMost=True(VB.NET)
8.如何显示一个Model和非Model的窗体
model和modeless的窗体主要将取决于你的应用,最多的是用在显示对话框.当你需要model的窗体时你调用myform.ShowDialog而非Model的调用MyForm.Show,对于ShowDialog有一个可选参数ower可以让你为一个窗体建立父子关系.比如:
'VisualBasic
PrivateSubmnuAbout_Click(…args…)
DimfAsNewFormOption
f.ShowDialogMe
EndSub
有一点需要注意的是对于ShowDialog来说,当执行到这一句,窗体显示,但这之后的代码将不会执行,只到窗口关闭之后才继续执行,而对于Show来说是即时的,显示窗体之后将立即执行下面的代码.
9.如何制作一个MDI的窗体
1.建立一个新的WindowsApplication项目
2.分别加入两个窗体Form1、Form2
3.设置Form1的IsMdiContainer属性为True。
使它成为MDI主窗体。
4.在Form2中加入一个RichTextBox控件,并设置Dock为:
Fill
5.在Tools窗体中拖一个MainMenu到窗体Form1,然后建立一个菜单File|Windows|Help三个菜单项,File中包括New、Exit菜单项;Windows中包括Cascade、Horizontal等。
6.设置Windows菜单项的MdiList属性=True,这样每一个MDI子窗口将自动加在Windows菜单项下面。
7.双击New菜单项,然后加入以下代码:
privatevoidmenuNew_Click(objectsender,System.EventArgse)
{
Form2NewMdiChild;
NewMdiChild=newForm2();
NewMdiChild.MdiParent=this;
NewMdiChild.Show();
}
8.在Windows的Cascade等菜单项中加入以下代码:
privatevoidmenuWindowCasca_Click(objectsender,System.EventArgse)
{
this.LayoutMdi(MdiLayout.Cascade);
}
另外还有以下常用的:
this.layoutmdi(mdilayout.tilehorizontal);
this.layoutmdi(mdilayout.tilevertical);
9.F5运行。
最终版的不知是否会有一个通用的模板,不过用完全手工的方式产生一个MDI的窗口,显得有些繁琐,不如VS.NET的IDE方式下那么简洁。
10.如何将你的窗体不显示在任务条上.
当窗体的边界风格是toolsWindow时它都不会出现在任务条上的.另外上面标题5中介绍的方法不仅窗体看不见,也不会出现在任务条上.
如果你现在在Dotnet的世界,这件事也变的简单,任何的Winform窗体现在都有ShowInTaskbar属性,所以你只要简单的设置这个属性就可以了。
同样你可以选择在属性窗口中将ShowInTaskbar由True改为False。
或是用代码的方式:
MyTaskBarFrm.ShowInTaskbar=false;(C#)
11.如何制作一个带启动屏幕的窗体.
需要你准备两个winform的窗体,一个叫它:
splashscreen,把它做成一个漂亮的窗体。
然后你需要一个主窗体叫它:
form1吧,然后在这个窗体加入下面的代码。
//(C#)
protectedoverridevoidOnLoad(System.EventArgse)
{
//makeloadtakealongtime
Thread.Sleep(2000);
base.OnLoad(e);
}
然后在main中加入这样的代码:
[STAThread]
staticvoidMain()
{
SplashScreensplashForm=newSplashScreen();
splashForm.Show();
Form1mainForm=newForm1();
mainForm.Load+=newEventHandler(splashForm.MainScreen_Load);
Application.Run(mainForm);
}
不要忘了加上对threading的引用:
usingSystem.Threading;
12.如何使你的窗体TrayIcon.
实现这个功能你可以运用notifyicon控件来达到,从toolsWindows中将NotifyIcon拖到你的窗体上然后在下面的事件加入如下代码,F5。
'//VB.NET
PrivatemIconAAsIcon=NewIcon("Icon1.ico")
PrivatemIconBAsIcon=NewIcon("Icon2.ico")
PrivatemIconDisplayedAsBoolean
PublicSubNew()
MyBase.New
Form1=Me
'ThiscallisrequiredbytheWinFormDesigner.
InitializeComponent
'TODO:
AddanyinitializationaftertheInitializeComponent()call
'thisformisn'tuseddirectlysohideitimmediately
Me.Hide()
'setupthetrayicon
Initializenotifyicon()
EndSub
PrivateSubInitializenotifyicon()
'setupthedefaulticon
notifyicon=NewSystem.Windows.Forms.NotifyIcon()
NotifyIcon.Icon=mIconA
NotifyIcon.Text="RightClickforthemenu"
NotifyIcon.Visible=True
mIconDisplayed=True
'InsertallMenuItemobjectsintoanarrayandaddthemto
'thecontextmenusimultaneously
DimmnuItms(3)AsMenuItem
mnuItms(0)=NewMenuItem("ShowForm...",NewEventHandler(AddressOfMe.ShowFormSelect))
mnuItms(0).DefaultItem=True
mnuItms
(1)=NewMenuItem("ToggleImage",NewEventHandler(AddressOfMe.ToggleImageSelect))
mnuItms
(2)=NewMenuItem("-")
mnuItms(3)=NewMenuItem("Exit",NewEventHandler(AddressOfMe.ExitSelect))
DimnotifyiconMnuAsContextMenu=NewContextMenu(mnuItms)
notifyicon.ContextMenu=notifyiconMnu
EndSub
PublicSubShowFormSelect(ByValsenderAsObject,ByValeAsSystem.EventArgs)
'Displaythesettingsdialog
DimSettingsFormAsNewSettingsForm()
SettingsForm.ShowDialog()
EndSub
PublicSubToggleImageSelect(ByValsenderAsObject,ByValeAsSystem.EventArgs)
'calledwhentheuserselectsthe'ToggleImage'contextmenu
'determinewhichiconiscurrentlyvisibleandswitchit
IfmIconDisplayedThen
'calledwhentheuserselectsthe'ShowForm'contextmenu
NotifyIcon.Icon=mIconB
NotifyIcon.Text="Sad"
mIconDisplayed=False
Else
NotifyIcon.Icon=mIconA
NotifyIcon.Text="Happy"
mIconDisplayed=True
EndIf
EndSub
PublicSubExitSelect(ByValsenderAsObject,ByValeAsSystem.EventArgs)
'calledwhentheuserselectsthe'Exit'contextmenu
'hidethetrayicon
NotifyIcon.Visible=False
'closeup
Me.Close()
EndSub
'Formoverridesdisposetocleanupthecomponentlist.
PublicOverloadsOverridesSubDispose()
MyBase.Dispose()
components.Dispose()
EndSub
图标文件你自己准备了,如果成功你可以看到有关NotifyIcond的各种功能了。
13.如何修改控制窗体的尺寸和长宽尺寸.
主要是修改winform的size,Width和Height属性。
同样它们都是可以在设计和运行时刻进行修改和设置。
form1.size=NewSystem.Drawing.Size(100,100)(VB.NET)
form1.width+=100(VB.NET)
form1.height-=20(VB.NET)
14.如何建立一个WindowsExplorer风格的窗体.
1.建立一个新的windowsApplication
2.从toolbox窗口拖一个treeview控件、、一个splitterk控件、一个listview控件,分别在属性窗口中设置treeview的dock属性为:
:
left;设置listview控件的dock属性为:
fill
3:
F5运行
15.如何设置初始的启动窗体
无论是c#还是visualBasic的Winform项目中你都可以在SolutionExplorer窗口中右键你的Project,然后选择属性,从你Project的属性页中选择你启动的窗体或是Main()方法。
有些不同的是在目前的Beta2中C#项目会自动产生Main()方法,VisualBasic.Net的项目中你必须自己添加Main()代码,C#中你可以将Form1改成任何你可以启动的窗体名:
//(C#)
staticvoidMain()
{
Application.Run(newForm1());
}
16.如何建立一个有背景图像的窗体
现在的winform中所有的窗体都有一个backgroundimage属性,只用对它赋值就可以了。
普通窗体可以在运行模式也可以在运行模式完成这个设置。
比如在initializecomponent()或窗体的构造函数中加入这样的代码:
this.backgroundimage=newBitmap("C:
\\DotNetApp\\WinForm\\Tile.bmp");
对于MDI的主窗体要麻烦一些,在VS.NET的IDE窗体中,当你设置完IsMdiContainer属性为True后,你需要查看一下InitializeComponent()中是否有这样的代码(C#):
this.mdiClient1.Dock=