点击Submit按钮时,如何让ListBoxGetChoice()函数返回ListBox选中项?
修复ListBoxGetChoice函数以返回选中项
原代码的问题在于,GUI显示后立刻执行return ListBox1.Text,此时用户还未进行选择和点击操作,返回的是ListBox的初始值,无法得到用户最终选择的内容。
你需要通过等待用户交互完成后再获取选中项来实现需求,以下是修复后的代码:
ListBoxGetChoice() { selectedChoice := "" MyGui := Gui('AlwaysOnTop') MyGui.AddText(, 'Select your category') ListBox1 := MyGui.AddListBox('r6', ['Option1', 'Option2', 'Option3']) MyBtn1 := MyGui.AddButton('Default w80', 'Submit') ; 绑定Submit按钮的点击事件:存储选中项并关闭GUI MyBtn1.OnEvent("Click", (*) => (selectedChoice := ListBox1.Text, MyGui.Destroy())) MyGui.Show('w400') MyGui.Wait() ; 等待GUI关闭后再返回值 return selectedChoice }
代码说明:
- 定义
selectedChoice变量用于存储用户最终选择的内容 - 给Submit按钮添加点击事件,触发时将ListBox的选中文本赋值给变量,并销毁GUI
- 使用
MyGui.Wait()暂停函数执行,直到GUI关闭,确保获取到用户的选择后再返回
内容的提问来源于stack exchange,提问作者Slava
相关产品推荐
相关产品推荐

