使用VBNET创建应用程序.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
步骤4– 连续运行 以下为实现方法: 添加复选框: 在设计器中,将复选框拖放到您的窗体上。 修改“外观”属性为“按钮”。 修改按钮文本为“连续运行”。 修改按钮名称为“运行内容检验盒( RunContCheckBox )”。 在复选框上双击并且在其创建的“CheckedChanged”方法中键入下列各行代码: If RunContCheckBox.Checked Then Try RunOnceButton.Enabled False myJobManager.RunContinuous Catch ex As Exception MessageBox.Show ex.Message End Try Else . . . 下页幻灯片继续. . . 步骤4–连续运行(续) 继续键入: 另外 Try RunContCheckBox.Enabled False myJobManager.Stop Catch ex As Exception MessageBox.Show ex.Message End Try End If 该代码告诉我们CJM在复选框被勾选时,执行RunContinuous 或者Stop 。 在我们开始运行时,它还使得“运行一次”按钮失效,而在我们等待CJM停止时使得“连续运行”按钮失效。 步骤4– 连续运行(结束) 我们只需要再添加两行代码: 在停止事件操作者底部添加一行: RunOnceButton.Enabled True RunContCheckBox.Enabled True ‘ 在停止时激活 在RunOnceButton_Clicked方法添加另一行如下代码: RunOnceButton.Enabled False RunContCheckBox.Enabled False ‘ 如果运行就失效 我们的新按钮已经完成。 花一分钟时间测试一下。 步骤4–避免死锁 注意:我们现在可以在应用程序运行期间关闭它。 但很快如果用户关闭正在运行的应用程序,我们添加的代码将会死锁。 要避免死锁,我们将防止用户在应用程序运行时关闭它。 在运行时,我们将删除允许用户关闭应用程序的“X”按钮。 以下为实现方法:: 在RunOnceButton_Click 中添加: ControlBox False RunOnceButton.Enabled False 在RunContCheckBox_CheckedChanged 中添加: ControlBox False RunOnceButton.Enabled False 在myJobManager_Stopped 中添加: ControlBox True RunOnceButton.Enabled True “ControlBox”是您窗体的一个属性。它控件名称栏按钮是否可见。 步骤4– 避免死锁(续) 步骤4– 显示运行状态( RunStatus ) 现在我们将更新 GUI显示运行状态。 在您的窗体上添加一个文本框控件,将其命名为“RunStatusTextBox”。 现在GUI 可能看起来有如下图: 步骤4– 运行状态在使用者列队中 步骤4– 事件和线程处理 我们要从使用者列队中调取运行状态并在我们的新文本框中显示。 这一切必须在我们将要编写的新事件操作者中将进行。 该操作者将用于UserResultAvailable事件。 什么线程会激活该事件? 什么线程被允许接触文本框? 没有关系。我们将不得不使用标准技巧避免交叉线程调用。 步骤4– 编写操作者的代码 在我们级别的最后,添加一个新操作者: Private Sub myJobManager_UserResultAvailable _ ByVal sender As Object, _ ByVal e As CogJobManagerActionEventArgs If InvokeRequired Then ‘ 创建一个指针指向该函数 Dim myDel As New myJobManagerDelegate _ AddressOf myJobManager_UserResultAvailable ‘ 在正确的线程上调用同一个函数 Dim eventArgs As Object sender, e Invoke myDel, eventArgs Return End If End Sub End Class 这确保适当的线程处理(但是没有作用)。 现在给操作者添加“真实”代码: Dim topRecord As Cognex.VisionPro.ICogRecord _ myJobManager.U

文档评论(0)

报告论文库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档