`
baobaoupup
  • 浏览: 470903 次
文章分类
社区版块
存档分类
最新评论

在VB.NET中使用XP风格界面

 
阅读更多

在VB.net中,从form启动的windows应用程序的风格默认就是XP的,但是如果设置从Main函数启动windows应用程序的话,界面就会回归成vb6那种难看的风格,那么这种情况下,应该怎么做才能使用XP风格界面呢?

从网上能搜到很多使用xp风格的方法,但是基本上都是以vb6为前提的,都要用到“主程序名.exe.manifest”这个xml配置文件,有的方法非常复杂(我还不会),也有比较方便,但是没有彻底解决问题的,每次重新编译都要再操作一遍的。

其实在vb.net中对于这个问题已经有非常方便的方法存在了,就是使用enableVisualStyles,具体方法如下:


Module main

Sub main()
Application.EnableVisualStyles()
Application.DoEvents()
Application.Run(frmMain)
End Sub
End Module


根据msdn的介绍,最好是在main函数中使用EnableVisualStyles,然后再用application运行窗体。另外,如果控件里有flatstyle属性时(如button,groupbox,checkedbox,radiobutton等),要将该属性改为system。
使用这个方法有一点需要注意,就是一个application中只能使用一次enableVisualStyles,不然会抛出InteropServices.SEHException异常。

-----------------------------------------------------------------------------

下面再介绍下前面提到的比较简单但不彻底的方法:

创建一个.manifest文件。文件必须与目标程序在同一个文件夹(例如你的工程的/bin文件夹),并且名字必须是
  MyApp.exe.manifest,其中MyApp是你的程序文件名。文件的内容如下:


  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" processorArchitecture="X86"
  name="MyApp" type="win32" />
  <description>Your application description here.</description>
  <dependency>
  <dependentAssembly>
  <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
  processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" />
  </dependentAssembly>
  </dependency>
  </assembly>
  将MyApp.exe替换为目标程序文件名,version改成你的版本。可以用记事本来建立这个文件。
  然后在.net工程中,将窗体的Button、Label的FlatStyle属性设置为System,如下图:
  


  这样,你建立的.net程序就可以呈现XP风格了。
  这里就出现了一个问题:无论更改MyApp.exe还是MyApp.exe.manifest的文件名,XP Sytle都会消失。

  解决办法就是将manifest文件直接嵌入.exe文件中去。方法是这样的:
  用Visual Studio.net打开.exe文件(这里是test_WMPSDK.exe),将会看到下面的东西:
  


  我们给它添加一个资源:
  


  在对话框中,我们找不到manifest类型。没关系,我们使用“导入”来导入:
  


  注意文件类型是“所有文件”。添加完后,要求资源类型,我们写入RT_MANIFEST:
  


  此时完成了资源添加:
  


  还没完,我们还要将资源的ID从101改为1:
  


  这样,保存.exe文件,运行一下看看(此时可以把.manifest文件删掉了):
  


  即使更改.exe文件名,程序仍然可以呈现XP Style。但是还有一个问题。因为资源是后期加入的,所以一旦你的工程重新生成,XP Style又会消失。比较彻底的办法是将manifest文件加入工程的资源当中去。

至于如何把manifest文件加入工程资源,貌似非常复杂,我并没有深究,如果大家有兴趣,这方面的资料网上还是能搜到的。

分享到:
评论

相关推荐

    用C#和VB.NET实现Office XP风格的菜单

    讲解如何用C#和VB.NET实现Office XP风格的菜单,感兴趣的下

    一个用于制作C# 或者VB.NET编辑器

    包括 C#、ja va 以及 VB.NET,同时还支持多种语言界面,象任何爱好者开发的工具一 样,SharpDevelop 经历了很多版本的更替,现在最新的版本是 v2.0.0.1 462 RC2 这个编辑器的界面风格类似于 ...

    VB 窗体美化 xp风格

    VB XP风格窗体,效果很漂亮,欢迎大家来下载!

    SharpDevelop-C#或者VB.NET项目而设计编辑器

     这个编辑器的界面风格类似于Office XP以及VS.NET,这个编辑器可以支持书写C#, ASP.NET, ADO.NET, XML, HTML 等多种代码, 支持基于项目或者是文件的开发,可以对C#, HTML, ASP, ASP.NET, VBscript, VB.NET, XML ...

    VB.NET编辑器) v3.1.1.5327 多语言版.zip

    这个编辑器的界面风格类似于office XP以及VS.NET,这个编辑器可以支持书写C#, ASP.NET, ADO.NET, XML, HTML 等多种代码, 支持基于项目或者是文件的开发,可以对C#, HTML, ASP, ASP.NET, VBscript, VB.NET, XML 提供...

    让VB编出的程序的界面XP化

    让VB的编译出来的窗体像XP的界面一样,在窗体设计及编译后的窗体都与XP的风格一样。

    VB使用manifest 、Res文件实现win7风格的窗体界面

    VB用两种方法实现win7风格的窗体界面,一种是使用manifest 文件实现,另一种是使用Res资源文件实现,XP风格的manifest文件和win7风格的manifest文件不同,请不要混用,另外请使用5.0版的Microsoft.Windows.Common-...

    SharpDevelop 中文版 C#\VB.NET 的项目开发工具

     这个编辑器的界面风格类似于 Office XP 以及 VS.NET,这个编辑器 可以支持书写 C#、ASP.NET、ADO.NET、XML、HTML 等多种代码, 支持基 于项目或者是文件的开发,可以对 C#、HTML、ASP、ASP.NET、VB.NET、V Bscript...

    vb.net版的XPMenu菜单应用实例.rar

    vb.net版的XPMenu菜单应用实例,虽然Windows XP现在用的人数越来越少了,不过确实是这个时代的经典,到现在很多软件都在采用WINXP的风格,这个XPMENU就是生成XP系统风格的菜单,对于大家来说,简洁漂亮实用仍是王道...

    asp.net知识库

    实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP...

    ActiveReports for .NET--灵活强大的.Net 报表制作控件

    完全代码集成-使用Microsoft Visual Studio.NET编辑器用C#或VB.NET编写报表的代码,非常灵活。 报表向导-报表向导帮助您开始创建使用集成设计器来定制的简单报表。 图片文件名 运用优势 最终用户报表设计器 ...

    Skin++ For Visual Studio.Net 3.1.1

    VB.NET 2002/2003/2005 VC.NET 2002/2003/2005 支持的操作系统 Windows Vista Wndows NT4.0/2000/XP/2003 Windows 95/98/98SE/Me 版本信息 当前版本:3.1.1.0 文件大小:17.6MB 更新日期:2007-01-14 下载次数...

    VB OutLook折叠展开的主界面菜单.rar

    VB OutLook式主界面菜单,可折叠和展开,类似WindowsXP的界面左侧菜单,如示例图所示,本示例菜单效果请看左侧的图文式菜单,鼠标单击后可向...以前这种菜单在微软Windows的OutLook中使用,本源码是仿写的这种菜单。

    Codejock Suite Pro试用版:一款功能强大的用于VBVB.NET下的用户界面套包产品

    可用平台: VB/VB.NET 当前版本: v17.1 Codejock Suite Pro是一款ActiveX/COM控件集,可为Windows程序员提供一套美观的用户界面控件,从而使您的应用程序具有专业的、现代感的外观。有了Xtreme Suite Pro,您可以...

    VB制作仿iphone风格的窗口.rar

    VB制作仿iphone风格的窗口,可移动/缩放/最小化/关闭,显示浮动工具栏窗口,圆角窗口、渐变窗口、可定义标题可视、移动窗口、恢复Windows XP风格、标题垂直、页脚垂直、图像窗口可视、标题是否缩放、页脚是否可视等...

    界面开发(c++ 、.net)

    这是一款真正意义上适合软件界面开发的C++界面库。采用XML管理GDI资源(如:图片、字体、颜色等),最大程度将...并且支持window平台的VC、.NET、VB6、Delphi、C++ Builder、PowerBuilder、易语言等多种计算机语言开发。

    一个支持多风格切换的VB按钮控件实例.rar

    一个支持多风格切换的VB按钮控件实例,支持11种按钮风格的切换,每种的...包括的风格有Java风格、Office XP风格、Windows xp风格、苹果风格、水晶按钮风格等,使用这些风格的同时还可对按钮文字进行对齐和排版设置。

    VB最好的界面美化套件 带注册机(Xtreme.Suite.Pro.ActiveX.v15.0.1)

    Xtreme 命令工具栏(Xtreme Command Bars)——把需要创建的具有改进对接算法的所有组件提供给Windows的图形用户界面(GUI)工程师,这些组件用来创建具有Microsoft Office XP风格的工具栏和菜单。Xtreme 浮动面板...

    sharpdevelop

    这个编辑器的界面风格类似于 Office XP 以及 VS.NET,这个编辑器可以支持书写 C#、ASP.NET、ADO.NET、XML、HTML 等多种代码, 支持基于项目或者是文件的开发,可以对 C#、HTML、ASP、ASP.NET、VB.NET、VBscript...

Global site tag (gtag.js) - Google Analytics