65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.44/5 (9投票s)

2007年3月11日

2分钟阅读

viewsIcon

97326

downloadIcon

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 分享了他很棒的仪表盘类。

© . All rights reserved.