来自dll项目的表单设计,而不是来自winforms项目

时间:2016-09-18 18:15:34

标签: c# winforms dll

因此,当我在Win10 PC上创建并执行我想要的winforms项目时,该项目中的所有表单都具有这种Metro Style UI设计。 但是,如果我在同一台PC上创建一个dll项目,并且引用我认为与winforms项目相同的System.Windows.Forms dll,我可以从dll创建的表单看起来有点像我在Win7并启用了XpVisualStyles选项。 即:作为一个基本的例子:默认情况下,表单上的所有按钮都设置为3d边框样式,并试图让它们变得扁平并不容易(如果它们看起来应该看起来很好)

问题是:为什么从dll创建的表单看起来不同于从winforms应用程序创建的表单,虽然它们都引用相同的dll(System.Windows.Forms我甚至检查了哈希和版本)? 第2部分如何将从dll创建的表单看作winforms项目中的表单?

附加信息:dll表单是通过引用控制台项目中的dll和另一个winforms项目创建的。两者看起来都像是Xp。

1 个答案:

答案 0 :(得分:0)

感谢@Reza Aghaei的好评,这个问题已经解决了。

第一解决方案

确保在打开表单的应用程序中调用Appliction.EnableVisualStyles();,如果没有,则需要引用System.Windows.Forms。 然后,显示的表格看起来就像它在设计师中向您展示的那样。

第二解决方案

调用拥有该表单的dll中的Appliction.EnableVisualStyles();。 这可以通过

来完成
  • 调用每个表单的构造函数
  • 或者通过dll中的一些静态函数来处理所有初始化

另外在表单构造函数中可能有一个条件,它调用相同dll的某个函数来检查样式是否已启用,如果不是,则执行此操作。

我会根据我的知识推荐使用静态初始化函数。