HreoWinGauge2.0组件集应用示例----事件应用

来源:互联网 发布:金蝶数据引出错误3275 编辑:程序博客网 时间:2024/06/11 04:19

 

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

 

8.5事件应用

1)创建按钮Knob组件

       VS2005中使用HreoWinGauge2.0创建一个按钮Knob,具体方法参考上一节《HreoWinGauge2.0组件集应用示例----旋钮指针》。本示例将在此基础上进行。创建完成后的按钮形状如图8.4-10所示。

 

8.4-10  Knob窗体

 

2)添加事件响应程序

给组件添加事件响应程序有三种方法:

1)使用HeroWinGauge提供的编辑器在GaugeContainer对象内添加。具体方法为:直接点击对象GuageContainer1所在的区域,此时该对象将出现矩形选择框,然后点击右上角的三角形智能标记,弹出智能操作面板,点击“Task for selectded object”选项卡中的“Edit”选项,此时打开一个“Gauge Object Editor”对话框。由于编辑对象为GaugeContainer,因此在对话框上方的工具栏上将有一个Event图标“”,点击该图标后,下方的属性编辑器将变为事件响应函数名称编辑器(图8.5-1),用鼠标右键点击“PointerPositionInRangeTimeOut”事件,然后在弹出的菜单中选择“Unique Value”项,将自动为用户输入该事件的响应函数名称,并在主窗体程序内自动生成该事件响应函数,同时为GaugeContainer对象的“PointerPositionInRangeTimeOut”事件加入该事件响应函数。

 

8.5-1 Gauge Object Editor”对话框(Event

 

2)使用VS2005提供的属性编辑器在GaugeContainer对象内添加。具体方法为:直接点击对象GuageContainer1所在的区域,此时该对象将出现矩形选择框,然后点击VS2005的属性选项卡,在弹出的属性编辑器中,点击工具栏上的Event图标“”,下方的属性编辑器将变为事件响应函数名称编辑器(图8.5-2),用鼠标右键点击“PointerPositionInRangeTimeOut”事件,然后在右侧输入事件响应函数的名称并按回车键,系统将在主窗体程序内自动生成该事件响应函数(如果不输入函数名称而直接按回车键,系统将自动为用户输入该事件的响应函数名称),同时为GaugeContainer对象的“PointerPositionInRangeTimeOut”事件加入该事件响应函数。

 

 

8.5-2  VS属性编辑器

 

3)使用手工添加的方法。该方法比较灵活,可在GaugeContainerGaugeComponentGaugePart对象内添加事件响应函数。首先在主窗体程序内手工添加一个事件响应函数gaugeContainer1_PointerPositionInRangeTimeOut,并写入相应的程序代码;然后在主窗体构造函数内为GaugeContainer的“PointerPositionInRangeTimeOut”事件加入该事件响应函数。如下所示:

 

    public partial classKnob :Form

    {

        public Knob()

        {

            InitializeComponent();

            this.gaugeContainer1.PointerPositionInRangeTimeOut += new HeroWinGauge.ValueInRangeTimeoutEvent(this.gaugeContainer1_PointerPositionInRangeTimeOut);

 

        }

 

        private void gaugeContainer1_PointerPositionInRangeTimeOut(object sender, HeroWinGauge.ValueInRangeTimeoutEventArgs e)

        {

            MessageBox.Show("Pointer stay in range longer than the setting time!");

        }

    }

 

        如果使用GaugeComponent的“PointerPositionInRangeTimeOut”事件,则可将上述程序中为事件添加响应函数的语句更改为:

HeroWinGauge.GaugeComponent gc = (HeroWinGauge.GaugeComponent)gaugeContainer1.GaugeComponents[0];

gc.PointerPositionInRangeTimeOut +=new HeroWinGauge.ValueInRangeTimeoutEvent(this.gaugeContainer1_PointerPositionInRangeTimeOut);

 

        如果使用CircularPointer的“PointerPositionInRangeTimeOut”事件,则可将上述程序中为事件添加响应函数的语句更改为:

HeroWinGauge.CircularPointer gp = (HeroWinGauge.CircularPointer)gaugeContainer1.GaugeComponents[0].MiddleLayerParts[0];

gp.PointerPositionInRangeTimeOut +=new HeroWinGauge.ValueInRangeTimeoutEvent(this.gaugeContainer1_PointerPositionInRangeTimeOut);

 

        以上3种手工添加事件响应函数的方法的程序运行效果都相同。多个对象可触发同一个事件响应函数,例如在同一个GaugeComponent中的两个CircularPointer都可以触发该GaugeComponent的事件,至于是哪个对象触发的,可以通过查询事件响应函数的参数来区分。有关各种事件类型的使用可参考组件的使用手册。

 

 

3)设置事件响应条件

        直接点击对象CircularRange1所在的区域,此时该对象将出现矩形选择框,然后点击右上角的三角形智能标记,弹出智能操作面板,点击“Task for selectded object”选项卡中的“Edit”选项,此时打开一个“Gauge Object Editor”对话框,编辑对象为CircularRange1

在对话框中更改对象属性:“InRangeTimeOut”设为“3”;“InRangeTimeOutUnit”设为“Seconds”。这样设定后,如果指针对象进入CircularRange1范围内,并停留超过3秒钟,应用程序将触发“PointerPositionInRangeTimeOut”事件响应函数。

 

4)编译运行程序

        编译运行以上程序,用鼠标拖动旋钮,使其进入CircularRange1范围内,等待3秒钟后将弹出信息提示框(如下图示)。

 

8.5-3 程序运行效果