先建个Form控件来作为画板,然后我们开始填东西进去,这里将要说明的是下拉选择框ComboBox的使用。
local frm = CreateFrame("Form", "TestF", UIParent)
frm.Visible = true
frm.Caption = "测试用"
1. 创建
local cboTest = CreateFrame("ComboBox", "CboTest", frm) -- 创建下拉框cboTest,名字为CboTest,父框体是frm
cboTest:SetPoint("TOPLEFT", frm, "TOPLEFT", 6, -30) -- 设定cboTest相对于frm的位置。
SetPoint这句定位语句,练习时,可以替换"TOPLEFT"为其他9个位置常量,看看效果,在IGAS-Studio中,将提供一套工具用于调整锚点。另外注意,这里没有设置Width和Height属性,这两个属性的值在控件创建时已经定义过了,使用时可以忽略。也可以调整Width属性配合自己的需要,Height属性最好不要修改。
2. 下拉选项的添加,修改和删除
上面代码随便使用一种,我们开始做修改,比如修改"第二项"为"修改项"。
cboTest:SetItem(2, "修改项") -- 如果你使用了添加方法的前两种
cboTest:SetItem("second", "修改项") -- 如果你用的后两种
这个使用的可能不大,另外,暂时没有Insert方法,以后再考虑添加了。下拉框修改的情况很少。
继续,现在做删除操作,删除第二项
cboTest:RemoveItem(2) -- 如果你使用了添加方法的前两种
cboTest:RemoveItem("second") -- 如果你用的后两种
暂时不建议使用,再添加时会有些麻烦。如果你需要修改,建议使用SetList重设,这样更快也更简单。
清空
cboTest:Clear()
3. 一些设置
cboTest.Editable = true -- 是否可编辑属性,默认是true。为true时,可以像文本编辑框一样编辑。所以,不需要的时候,记得设成false.
cboTest.AutoFocus = true -- 是否自动获取焦点,默认false。为true时,当你的活动框体是下拉框的父框体时,下框会自动获取焦点,如果
-- 下拉框框体的Editable属性为false,那么这个属性恒为false。建议设为true,不然别人还以为不能编辑。。。
cboTest.DisplayItemCount = 8 -- 下拉框框体最多显示几项,默认6。没什么必要调整,知道可以设置这个就是了。
4. Text和Value属性,以及OnValueChanged, OnTextChanged事件
下面是下拉框的核心处理,你们先使用前面添加下拉项的第4种方法,添加好。然后我们用一段事件处理方法来看看这几个概念。首先加入这段代码
cboTest.OnTextChanged = function(self, text)
IGAS.Print("下拉框触发OnTextChanged事件")
IGAS.Print("下拉框Text属性值为"..tostring(self.Text))
IGAS.Print("下拉框Value属性值为"..tostring(self.Value))
end
cboTest.OnValueChanged = function(self, value)
IGAS.Print("下拉框触发OnValueChanged事件")
IGAS.Print("下拉框Text属性值为"..tostring(self.Text))
IGAS.Print("下拉框Value属性值为"..tostring(self.Value))
end
Okay,下面的语句,记得每次只使用一句,用完就删掉,当然,别删了上面的代码。
基本上跑完这些之后,你也能了解,这几个之间的关系,和框体的表现了。
评论
下拉列表的样式(如任一项的高度、字体、颜色等)是固定的还是
下拉列表的样式(如任一项的高度、字体、颜色等)是固定的还是可调的?
网站上公布的内容真的挺不错的,可为什么那些个讲解都不配图呢
网站上公布的内容真的挺不错的,可为什么那些个讲解都不配图呢,我觉得要是配上图会效果更好了
http://bbs.cwowaddon.com/thre
http://bbs.cwowaddon.com/thread-5335-1-1.html 实际上,是配合这个插件,在游戏中测试使用的,没配图,是因为,我是在办公室打的,没法配图。