具有该ID的控件已存在

使用VS2010,在一个对话框复制了几个按钮,对另一个对话框粘贴

然后修改各按钮ID。

发现第一个按钮跟源按钮是一样的,其他都在后面添加一个"2"

想把这些"2"删掉,结果提示"具有该ID的控件已存在"

可是第一个按钮也是在两个对话框都有,为什么就可以呢

找了原来的一个项目打开参考,不同的对话框是有相同ID的,但有些同名的按钮也加了个区别的标志

看来当初也有这个问题,项目时间原因没追究这个问题。

理论上来说,不同对话框可以有相同ID的。

好吧,度娘之。大部分结果甚不满意,误人子弟啊。

只有这里,http://bbs.youkuaiyun.com/topics/60496255,基本提出解决的方法

但需要进一步说明,你需要把Resource.h的每一个重复的ID 都改成不重复,不只是你想修改的那个


### Auto.js 中等待控件出现后执行脚本 在 Auto.js 脚本编写中,可以通过 `id`、`text` 等属性来定位控件,并设置超时时间以确保只有当目标控件确实存在于屏幕上时才继续执行后续操作。下面是一个具体的例子: ```javascript // 启动应用 launchApp("Auto.js"); // 定义一个函数用于等待特定ID控件并返回该控件对象 function waitForElementById(elementId, timeoutMs) { let startTime = new Date().getTime(); while (new Date().getTime() - startTime < timeoutMs) { var element = id(elementId).findOne(); if (element !== null && element.exists()) { return element; } sleep(500); // 每隔半秒钟检查一次 } return null; // 如果超过指定的时间仍未找到,则返回null } // 使用自定义方法寻找具有特定 ID控件,在此案例中为 "action_log" var logButton = waitForElementById("action_log", 6000); if(logButton != null){ logButton.click(); // 找到后点击它 }else{ toast("未能在规定时间内找到日志按钮"); } ``` 上述代码展示了如何创建一个名为 `waitForElementById()` 的辅助函数[^2],其接受两个参数——要查找的元素 ID 和最大等待毫秒数。这个函数会在给定的最大时间内不断尝试获取匹配的 UI 控件实例;一旦发现符合条件的对象就会立即停止循环并将之返回,从而实现“等待直到某个条件满足”的功能。 此外,还可以利用其他方式如 `className`, `desc`, 或组合多个属性来进行更精确的选择和过滤[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值