您的位置:首页 > 其它

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

2013-08-18 18:04 369 查看
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)使用手工添加的方法。该方法比较灵活,可在GaugeContainer、GaugeComponent、GaugePart对象内添加事件响应函数。首先在主窗体程序内手工添加一个事件响应函数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 程序运行效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: