HreoWinGauge2.0组件集应用示例----LED多段指示器(2)

来源:互联网 发布:我的世界无限耐久js 编辑:程序博客网 时间:2024/06/11 23:47

 

 HreoWinGauge2.0 试用版下载地址:http://download.csdn.net/source/6896899

 

(6)复制LED多段指示器

用鼠标右击以上生成的LED多段指示器,在弹出的快捷菜单中选择“复制”项,然后在设计窗体内空白处单击鼠标右键,在弹出的快捷菜单中选择“粘贴”项,在窗体中将复制出相同的LED多段指示器。使用以上方法复制两个相同的LED多段指示器。

      在设计窗体中添加如下三个控件:

      添加一个Button控件,更改属性如下:“Name”设为“btnStartStop”;“Text”设为“Start/Stop”。并添加Click事件响应函数。

      添加一个Button控件,更改属性如下:“Name”设为“btnClear”;“Text”设为“Clear”。并添加Click事件响应函数。

      添加一个Timer(定时器)控件,更改属性如下:“Name”设为“timer1;“Interval”设为“100。并添加Tick事件响应函数。

      在窗体中调整好两个Button控件的位置,效果见图7.2-8

 

7.2-8 LedIndicator窗体5

 

7)使用LED多段指示器

      TestLedIndicator.cs文件头部添加HeroWinGauge命名空间的引用:“using HeroWinGauge;”,并添加各控件事件响应函数。完整的程序代码如下:

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using HeroWinGauge;

 

namespace HeroWinGaugeSamples

{

   publicpartialclassLedIndicator :Form

   {

       privateLinearPointer lp1;

       privateLinearPointer lp2;

       privateLinearPointer lp3;

       privateLinearScale ls1;

       privateLinearScale ls2;

       privateLinearScale ls3;

       privateRandom ran;

 

 

       public LedIndicator()

       {

           InitializeComponent();

           lp1 = (HeroWinGauge.LinearPointer)gaugeContainer1.GaugeComponents[0].MiddleLayerParts[0];

           lp2 = (HeroWinGauge.LinearPointer)gaugeContainer2.GaugeComponents[0].MiddleLayerParts[0];

           lp3 = (HeroWinGauge.LinearPointer)gaugeContainer3.GaugeComponents[0].MiddleLayerParts[0];

           ls1 = (HeroWinGauge.LinearScale)gaugeContainer1.GaugeComponents[0].TopLayerParts[0];

           ls2 = (HeroWinGauge.LinearScale)gaugeContainer2.GaugeComponents[0].TopLayerParts[0];

           ls3 = (HeroWinGauge.LinearScale)gaugeContainer3.GaugeComponents[0].TopLayerParts[0];

           ran =newRandom();

       

       }

 

       privatevoid btnStartStop_Click(object sender,EventArgs e)

       {

           if (this.timer1.Enabled)

           {

               this.timer1.Stop();

           }

           else

           {

               this.timer1.Start();

           }

 

       }

 

       privatevoid btnClear_Click(object sender,EventArgs e)

       {

           lp1.Value = ls1.StartValue;

           lp2.Value = ls2.StartValue;

           lp3.Value = ls3.StartValue;

       }

 

       privatevoid timer1_Tick(object sender,EventArgs e)

       {

           // generate a random number between 0 and 100

           lp1.Value = (float)(ls1.StartValue + (ls1.EndValue - ls1.StartValue) * ran.NextDouble());

           lp2.Value = (float)(ls2.StartValue + (ls2.EndValue - ls2.StartValue) * ran.NextDouble());

           lp3.Value = (float)(ls3.StartValue + (ls3.EndValue - ls3.StartValue) * ran.NextDouble());

 

       }

 

   }

}

 

注意:在以上代码的LedIndicator()函数中,线形指针对象引用lp1lp2lp3线形刻度对象引用ls1ls2ls3付值的代码都比较长,使用者可能会觉得比较麻烦。如何快速取得线形指针对象和线形刻度对象的引用?这里介绍另外一种快速获得内部对象引用的方法。例如要获得LinearPointer对象引用用户只须以上介绍中相应的GaugePart Collection Editor”对话框左侧“Members”列举项中,选择该LinearPointer对象,然后点击Members”列举项右侧的“S”功能键(见图7.2-6),系统将会弹出“The property symbol has been copied to clipboard.”提示框。表示已将引用对象的编程符号复制到Windows的剪贴板中,然后使用者就可将其粘贴到程序中。

 

8)运行程序

      到此,一个完整的LED多段指示器演示程序已全部完成,可以编译运行。运行此程序时,可按“Start/Stop”按钮启动或停止LED多段指示器,按“Clear”按钮清零LED多段指示器。