资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

vb.net窗体界面设计 vbnet窗体属性

请问vb.net 如何在编程时全屏?不是运行时

一、 全屏幕图形界面设计

站在用户的角度思考问题,与客户深入沟通,找到富顺网站设计与富顺网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广、域名申请、网络空间、企业邮箱。业务覆盖富顺地区。

图形界面是现代软件中人机交互的主要手段。为了追求界面的统一和美观,在软件开放过程中,图形界面大多采用全屏幕构图方式。这是通过将窗体的边框设置为无边框(BorderStyle=None),将窗体显示模式设置为极大化(WindowState=Maximized)来实现的。

当一个窗体界面的设计中要容纳多张图片和多个控制时,将出现窗体显示速度明显变慢的现象,严重影响了程序运行的流畅性。为了解决这一问题,在开放过程中,采用了一种将【界面设计窗体】与【功能实现窗体】分开处理的方法。在【界面设计窗体】中,首先按功能的需要和界面设计的创意,将所需的大量图片和控制在屏幕上安排好,选择美观的字体、颜色、线型,对屏幕界面进行设计、修饰加工;然后在其全屏幕运行的状态下,利用剪贴技术,将这一设计完成的图形界面全屏幕复制到剪贴板上;

接着将这一屏幕映象作为一张图片粘贴在【功能实现窗体】的背景上。这样,从外观上看,两个窗体的形状完全相同,而在屏幕的显示速度上,后者明显加快。这时,【功能实现窗体】中的控件已变成一个象征性的图标,对它的操作,可在控制图标的对应位置上设置一个Image 类型的图象框,通过对图象框的操作,来代替原先对控制对象的操作。

采用这种方法,使窗体界面设计的灵活性大大增加,可以任意发挥,而不用担心控件、图片太多,影响窗体的显示速度。但采用这种方法,将不可避免地增加应用程序本身所占的存储容量,这是以容量换取速度必须付出的代价。

二、 动态功能提示信息的实现

在现代软件设计中,多数功能图标、按钮都在界面上直接确定其对应的名称,同时也提供了动态提示的功能,即当鼠标移至某一控件时,或使鼠标的形状用一具有象征意义的图标代替,或自动出现一条文字提示,下面介绍一下如何实现这种先进的提示模式。

动态改变鼠标的图形形状,是通过控件的MousePointer属性设置为13(自定义),然后在MouseIeon属性中选取一ICO图标文件来完成的;动态文字提示功能是利用控件的MouseMove事件来实现的:将功能提示处理程序设计在对应的MouseMove事件过程中,当鼠标移动到该控件范围区域时,即可触发程序执行,完成动态功能提示;为了防止处理程序反复触发,必须设置一控制开关,使处理程序只在鼠标第一次触发该控件区域时被执行;取消功能提示的处理程序设计在窗体的MouseMove事件中,

说明程序如下:

Dim FirstTouch As Boolean '防止反复触发处理程序的控制变量

Private Sub ControlObject- MouseMove ()

If FirstTouch Then

FirstTouch =False '显示功能提示字符

End Sub

Private Sub Form- MouseMove ()

FirstTouch =True '取消功能提示字符

End Sub

vb.net界面设计 的工具栏里的一些基本图标,比如打开、保存、复制怎么添加啊?

用格式转换器(格式工厂)把ico格式转换成其他可识别的格式

然后在添加

下一步(你的意思是要在界面设计中 往窗体上添加工具栏吗?)

工具箱中 ---- 菜单和工具栏 ----- MenuStrip

窗体上方出现 '请再次键入'(vs2010中) 的框框 点一下就可以放"打开"什么的了

右面属性中找到Image属性.可以更改你自己的图片了.

知道了吗?

还有疑问你就追问 ````赫赫

VB.NET中设定窗体大小

窗体初始化时,设定Windowstate= maximized.

窗体分辨率仍然可以设成1920x1080。设计元素的时候拖拽,或者使用代码初始化控件。

VB.NET菜单设计初级入门[3]

五.绘制个性化菜单

先执行以下操作步骤 下列步骤是通过菜单编辑器设计一个简单的菜单 为后面重新绘制做基础

启动Visual Studio Net

选择菜单【文件】|【新建】|【项目】后 弹出【新建项目】对话框

将【项目类型】设置为【Visual Basic项目】

将【模板】设置为【Windows应用程序】

在【名称】文本框中输入【自己画菜单】

在【位置】的文本框中输入【E:\VS NET项目】 然后单击【确定】按钮 这样在 E:\VS NET项目 目录中就产生了名称为 自己画菜单 的文件夹 并在里面创建了名称为 自己画菜单 的项目文件

把Visual Studio Net的当前窗口切换到【Form vb(设计)】窗口 并从【工具箱】中的【Windows窗体组件】选项卡中往Form 窗体中拖入下列组件

一个MainMenu组件 名称为 MainMenu

选中 MainMenu 组件 单击鼠标右键 在弹出的菜单中选择 编辑菜单 并按照图 所示界面设计菜单

图 【自己画菜单】项目设计界面之一

此时保存上述步骤 并单击快捷键F 则得到图 所示界面

图 【自己画菜单】运行界面之一

这样通过菜单编辑器就完成了一个非常普通的菜单 下面就对此菜单进行改造 在改造之前 要先设定项目中的三个MenuItem类实例的OwnerDraw属性值为 True 因为只有此属性值为 True 才会触发绘制菜单时所需要的DrawItem事件和MeasureItem事件 之后再在上面项目的基础上执行下一步操作

把Visual Stuido Net的当前窗口切换到Form vb的代码编辑窗口 并在InitializeComponent过程之后添加下列代码 下列代码是绘制 文件 菜单项 其作用是改变 文件 菜单项的字体 大小和菜单项的 其具体的绘制方法请参考下列代码中的注释

Private Sub MenuItem _DrawItem ( ByVal sender As Object ByVal e As System Windows Forms DrawItemEventArgs ) Handles MenuItem DrawItem Dim rfBound As RectangleF = New RectangleF ( e Bounds X e Bounds Y e Bounds Width e Bounds Height )  根据DrawItemEventArgs参数获得菜单项矩形区域并存储到RectangleF类型实例中 Dim rfBound As Rectangle = New Rectangle ( e Bounds X e Bounds Y e Bounds Width e Bounds Height )  根据DrawItemEventArgs参数获得菜单项矩形区域并存储到Rectangle类型实例中  Rectangle类型实例和RectangleF类型实例差不多 但在后面代码中绘制菜单的函数是有区别的  e Graphics FillRectangle(New SolidBrush(Color LightGreen) rfBound) 以LightGreen色彩填充MenuItem 菜单项对应的矩形区域 Dim s As MenuItem = CType ( sender MenuItem ) Dim s As String = s Text  获得MenuItem 菜单项的名称 Dim sfTemp As StringFormat = New StringFormat ( ) sfTemp Alignment = StringAlignment Center  设定要画的菜单名称的对齐方式 中间对齐 e Graphics DrawString ( s New Font ( 宋体 FontStyle Bold ) New SolidBrush ( Color Black ) rfBound sfTemp )  以中间对齐方式 指定字体 大小 在指定的矩形区域重画菜单 If e State = ( DrawItemState NoAccelerator Or DrawItemState Selected ) Then 根据菜单项的当前绘制状态来绘制菜单项 e Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) rfBound ) 对菜单项所在的矩形区域进行色彩填充 e Graphics DrawString ( s New Font ( 宋体 FontStyle Bold ) New SolidBrush ( Color Black ) rfBound sfTemp )  对菜单项名称绘制 End If e DrawFocusRectangle ( )  在 DrawItemEventArgs参数得到矩形范围内绘制聚焦框  e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound )  对菜单项的矩形区域绘制矩形框End Sub

操作完成后 保存修改 此时再单击快捷键F 运行程序 可得到如图 所示的界面

图 【自己画菜单】运行界面之二

可见绘制的 文件 菜单项并没有完全显示出来 并且后面的菜单项也没有显示 这是因为菜单项的显示区域并没有设定 而缺省的空间又不能完全显示造成的 设定菜单项的显示区域大小是通过MeasureItem事件来完成的 具体操作是在MenuItem 的DrawItem事件后添加下列代码 下列代码是是定义MenuItem 的MeasureItem事件 在此事件中设定菜单项的宽度(当然也可以设定高度等)

Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Handles MenuItem MeasureItem e ItemWidth =   设定菜单项的宽度End Sub

保存上述修改后 单击快捷键F 运行程序可得到图 所示界面

图 【自己画菜单】运行界面之三

可见 文件 菜单项就算绘制出来了 由于其他菜单项没有绘制处理 所以也未显示 其他菜单项的绘制方法和 文件 菜单项的绘制方法基本相似 以下是在上述完成的基础上 对其他菜单项进行绘制 从而得到图 所示菜单的具体实现步骤

图 【自己画菜单】运行界面之四

在Form vb中的MenuItem 的MeasureItem事件处理程序之后添加下列代码 下列代码是定义MenuItem 的DrawItem事件 其功能是对 新建 菜单项重新绘制

Private Sub MenuItem _DrawItem ( ByVal sender As Object ByVal e As System Windows Forms DrawItemEventArgs ) Handles MenuItem DrawItem Dim rfBound As RectangleF = New RectangleF ( e Bounds X e Bounds Y e Bounds Width e Bounds Height )   根据DrawItemEventArgs参数获得菜单项矩形区域并存储到RectangleF类型实例中 Dim rfBound As Rectangle = New Rectangle ( e Bounds X e Bounds Y e Bounds Width e Bounds Height )   根据DrawItemEventArgs参数获得菜单项矩形区域并存储到Rectangle类型实例中  Rectangle类型实例和RectangleF类型实例差不多 但在后面代码中绘制菜单的函数是有区别的 e Graphics FillRectangle ( New SolidBrush ( Color LightGray ) rfBound )  Dim s As MenuItem = CType ( sender MenuItem )  Dim s As String = s Text  获得菜单项对应的文本名称 Dim sfTemp As StringFormat = New StringFormat ( )  sfTemp Alignment = StringAlignment Center  设定文本在矩形区域的对齐方式 sfTemp LineAlignment = StringAlignment Center Dim rcText As RectangleF = rfBound rcText Width =  e Graphics DrawString ( s New Font ( 宋体 ) New SolidBrush ( Color Blue ) rcText sfTemp )  e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color LightGray ) ) rfBound )  If e State = ( DrawItemState NoAccelerator Or DrawItemState Selected ) Thene Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) rfBound ) e Graphics DrawString ( s New Font ( 宋体 FontStyle Bold Or FontStyle Underline ) New SolidBrush ( Color Red ) rcText sfTemp ) e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound ) e DrawFocusRectangle ( )  End IfEnd Sub

MenuItem 的DrawItem事件处理代码之后添加下列代码 下列代码是定义MenuItem 的MeasureItem事件 在此事件中实现设定 新建 菜单项的长度和高度

Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Handles MenuItem MeasureItem e ItemWidth =   设定菜单项的宽度 e ItemHeight =   设定菜单项的高度End Sub

在完成上述操作步骤后 再在MenuItem 的MeasureItem事件处理程序之后添加下列代码 下列代码是定义MenuItem 的DrawItem事件 其功能是对 打开 菜单项重新绘制

Private Sub MenuItem _DrawItem ( ByVal sender As Object ByVal e As System Windows Forms DrawItemEventArgs ) Handles MenuItem DrawItemDim rfBound As RectangleF = New RectangleF ( e Bounds X e Bounds Y e Bounds Width e Bounds Height ) 根据DrawItemEventArgs参数获得菜单项矩形区域并存储到RectangleF类型实例中Dim rfBound As Rectangle = New Rectangle ( e Bounds X e Bounds Y e Bounds Width e Bounds Height ) 根据DrawItemEventArgs参数获得菜单项矩形区域并存储到Rectangle类型实例中 Rectangle类型实例和RectangleF类型实例差不多 但在后面代码中绘制菜单的函数是有区别的Dim s As MenuItem = CType ( sender MenuItem ) Dim s As String = s TextDim sfTemp As StringFormat = New StringFormat ( ) sfTemp Alignment = StringAlignment CentersfTemp LineAlignment = StringAlignment CenterDim rcText As RectangleF = rfBoundrcText Width = e Graphics DrawString ( s New Font ( Veranda ) New SolidBrush ( Color Blue ) rcText sfTemp ) e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color LightGray ) ) rfBound ) If e State = ( DrawItemState NoAccelerator Or DrawItemState Selected ) Then e Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) rfBound )  e Graphics DrawString ( s New Font ( Veranda FontStyle Bold Or FontStyle Underline ) New SolidBrush ( Color Red ) rcText sfTemp )  e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound )  e DrawFocusRectangle ( ) End IfEnd Sub

MenuItem 的DrawItem事件处理代码之后添加下列代码 下列代码是定义MenuItem 的MeasureItem事件 在此事件中实现设定 新建 菜单项的长度和高度

Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Handles MenuItem MeasureItem e ItemWidth =   设定菜单项的宽度 e ItemHeight =   设定菜单项的高度End Sub

在上述步骤都正确完成后 本文介绍的手工绘制菜单就完成 此时单击快捷键F 运行 程序就可以得到图 所示的运行界面

六.总结

本文主要内容是介绍VB NET设计和创建菜单 其中不仅介绍了使用菜单设计器来静态设计菜单 还介绍了使用MainMenu类 MenuItem类和ContextMenu类动态创建菜单的实现方法 在动态创建时 首先要了解要创建的菜单类型 是下拉菜单 首先要创建一个MainMenu实例 是弹出菜单 首先要创建一个ContextMenu实例 然后根据菜单中的组成结构 即菜单项中的父子关系 创建出相应菜单 最后就是显示出菜单 如果是下拉菜单 指派给Form的Menu属性 如果是弹出菜单 指派给可视组件或Form的ContextMenu属性 这样动态创建菜单才能够显示出来 动态创建菜单的工作才算完成

此外还介绍了在Visual Basic Net中绘制个性化菜单的实现方法和注意事项 在绘制个性化菜单时最重要的是掌握DrawItem事件和MeasureItem事件用法 及绘制菜单时所要使用到的方法 虽然本文绘制的菜单并不美观 但你可以通过本文介绍的方法来修改 从而实现更美观 更有个性的菜单 最后请记住 在绘制菜单时 首先把菜单项的 OwnerDraw 属性设定为 True

lishixinzhi/Article/program/net/201311/15454


名称栏目:vb.net窗体界面设计 vbnet窗体属性
标题来源:http://www.cdkjz.cn/article/dojhdog.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220