×

工业设计互动平台

手机短信,快捷登录

微信登录,快人一步

QQ登录

只需一步,快速开始

Grasshopper响应按键,读取键盘

发布于 2014-8-18 0 点赞 5 评论 8639 浏览

key.png
前两天,Q群有人问如何在GH中实现按键读取。其实这个东西很简单,因为GH的父窗体本身就是一个Form类,我们直接获取使用keydown事件就行了。
代码如下
  1. Private Sub RunScript(ByRef A As Object)
  2.     Static addh As Boolean = False
  3.     If Not addh Then
  4.       form.KeyPreview = True
  5.       AddHandler form.KeyDown, AddressOf GHkeydown
  6.       addh = True
  7.     End If
  8.     'RemoveHandler form.keydown,AddressOf ghkeydown
  9.     a = keystr
  10.   End Sub

  11.   '<Custom additional code>
  12.   Public keystr As String = ""
  13.   Dim form As system.Windows.Forms.Form = grasshopper.Instances.DocumentEditor
  14.   Public Sub ghkeydown(sender As Object, e As system.windows.forms.keyeventargs)
  15.     keystr = e.KeyData.ToString
  16.     Me.Component.ExpireSolution(True)
  17.   End Sub
复制代码
定义静态变量是为了不重复关联,对于事件委托遍历实在太麻烦了,所以就没写。实际上应该看keydown事件上是否有委托,而且还可以写个清除委托的过程。
正在寻求开发 gha插件的同道中人,有会gha开发的联系本人,一起讨论有关问题Q772671249,新手可以加入群组82367748

keydown2.gh

167.26 KB, 下载次数: 117

 [充值]

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩回复

文明上网理性发言、请文明用语

zero0822 | 设计师 | 发表于 2014-8-19 00:42:20
我来坐沙发
0 回复

举报

小纠结………… | 设计助理 | 发表于 2014-8-19 15:44:23
我来做板凳
0 回复

举报

爱上一个吃货 | 设计助理 | 发表于 2014-8-20 16:28:42
来学习一下
0 回复

举报

dengborn07 | 设计助理 | 发表于 2014-8-22 02:06:55
学习啦 谢谢
0 回复

举报

我兜里有钱 | 实习生 | 发表于 2014-8-25 22:08:32
太高端了这个
0 回复

举报