一个快速且高效的仪表盘,现在以DLL的形式提供给VB用户






2.44/5 (9投票s)
2007年3月11日
2分钟阅读

97326

3477
一个将漂亮的仪表添加到您的 VS 工具箱的简短过程。
引言
对于那些希望在VB.net项目中使用 A.J. Bauer 编写的出色仪表盘类的朋友们。 在互联网上搜索了一段时间,希望能找到一个看起来不错且免费的仪表盘控件后,我终于找到了 Code Project 的文章“一个快速且高效的仪表盘”,但令我震惊的是,它用 C# 编写(我 = VB 程序员),并且没有为仪表盘类使用 DLL。 现在,我仍然是 .net 开发的新手,但我决心在我的 VB.Net 应用程序中使用仪表盘类,而且我不想在 VB 类中重写所有内容。所以,这就是我所做的。
1. 打开一个 VS2005 项目并选择 Visual C#/windows/Class Library
2. 将原始项目的 agauge.cs 的内容剪切到我的新类代码中,覆盖所有自动生成的内容。
3. 在解决方案资源管理器窗口中,我添加了对 System.Drawing 和 System.Windows.Forms 的引用
4. 调试一些损坏的定义后,我从 Agauge.Designer.cs 中复制了以下几行...
private Sytem.ComponentModel.Icontainer components = null;
和...
private void InitializeComponent() { components = new System.ComponentModel.Container(); }
...到新的 class.cs 代码中,就在 public Agauge()
构造函数之前...
//KO-Added for Conversion to DLL private System.ComponentModel.IContainer components = null; //KO-Added for Conversion to DLL private void InitializeComponent() { components = new System.ComponentModel.Container(); } public AGauge() { InitializeComponent(); SetStyle(ControlStyles.OptimizedDoubleBuffer, true); }
5. 最终编辑使命名空间与我的项目 namespace AGauge
匹配,然后我就可以构建 DLL 了。
6. 从我的原始 VB 项目中,我打开工具箱,右键单击它,选择“选择项目...”然后浏览到我新创建的 DLL,单击打开,就这样!出现了一个新的工具箱控件,允许我将仪表盘拖到我的 VB 窗体上。
7. 接下来几个小时,我欣喜若狂地调整了无数属性,制作了几个我项目所需的自定义仪表盘。
我并不认为这是完成我想做的事情的最佳或唯一方法,但它确实有效,而且我认为这值得分享...
附注:在使用控件一段时间后,很明显 ScaleLinesMajorStepValue 属性存在问题,所以我重新打开了 DLL 项目并搜索了该符号。我不确定为什么,但原始代码将值限制在当前 MinValue 和 MaxValue 属性之间的数字。从表面上看,这似乎是有道理的,但在实践中,它在尝试调整属性时给我带来了麻烦。在上面的修改后的代码中,我只是将其更改为在属性窗口中输入的任何值。原始代码行附在我的编辑上面的注释中。
最后,我要感谢 A.J. Bauer 分享了他很棒的仪表盘类。