如何知道按下了哪个MenuItem或按钮

时间:2013-11-08 17:46:15

标签: google-apps-script

我想创建一个仪表板来选择(取消隐藏并激活)电子表格中的几张表格之一:我正在考虑使用菜单或多个按钮的UInstance。

为每个按钮或MenuItem创建不同的ServerHandler(以及不同的CallBack函数)似乎很困难,因为它们的编号仅在运行时才知道。

在回调函数中使用EventInfo.parameter要简单得多,但是如果我没有添加一个带有应该有setName()方法的元素的CallbackElement,那么这个参数是空的。

问题在于,令我惊讶的是,Buttons和MenuItem都没有setName方法!!!

我错过了一些非常基本的东西吗?我似乎并不认为按下事件的菜单项会包含对启动事件本身的元素的引用吗?

好吧,也许我应该恢复到具有setName()方法的LIstBox ......

谢谢,劳罗

1 个答案:

答案 0 :(得分:0)

eventInfo包含调用处理程序的小部件的ID。

您可以在处理函数中使用e.parameter[source]获取它。(将ID作为字符串返回)

只需为所有按钮提供不同的ID,所有按钮的唯一处理程序就完成了。 (您可以将处理程序添加到父窗口小部件以简化代码,例如,如果使用网格定位按钮,则将单个处理程序添加到网格中,它将适用于所有按钮)