|
本帖最后由 快乐王 于 2009-3-23 08:46 编辑
三态列表框 wsb_List
Access 提供的组合框只有单选功能,列表框虽有多选功能,但通常是一个多行的选框,要占用较大空间,强制为单行显示时用微调按钮选择非常不方便。为此制作了一个集组合框与列表框的单选、多选、列表功能于一身的三态列表框 wsb_List。三态列表框 wsb_List,貌似微软的组合框 Combo 但又加入了 List 列表框在“简单”多重选择状态下的多选功能。
三态列表框的实现思路是:用一个文本框加一个三角形图片装扮成选择框,当文本框可见时将列表框高度收为0,当三角形图标被点击时,隐藏起文本框,并将列表框展开。
三态列表框 wsb_List 的制作过程:
- 用抓图软件抓一个组合框的下拉三角形图标“”,存成 .ico 文件格式,文件规格 18*18-24位色,存放到“root\image\”文件夹下(root为软件安装根路径);
- 在窗体中制作一个文本框wsb_ListText,调整其高度为0.451cm,默认值为"请选择……";
- 将“1”中准备好的图片插在紧贴着文本框 wsb_ListText 的右边,缩放模式:缩放,上边距与文本框平齐,宽度与高度均为0.478cm,取名为:wsb_ListImage;
- 在窗体中制作一个列表框控件wsb_List,宽度、上边距和文本框相同,高度设置为0cm,多重选择设为“简单”。
三态列表框 wsb_List 被选数据可以从 wsb_ListText、wsb_List.Column(0, (varItem))或wsb_List.Column(1, (varItem)) 中获取,既可以直接在 Sub RowsSelected() 程序段中插入代码调用,也可以比照 Sub RowsSelected() 程序段另外专门写一个过程进行后续处理。
三态组合框 wsb_Combo
Access 提供的组合框只能通过选择或在鼠标双击事件中加入代码提取组合框中的选项。组合框的鼠标单击、鼠标按下、鼠标释放与控件数据更新后事件搀和在一起无法区分。为此特意制作了一个能够区分组合框鼠标单击、双击和选择三种状态并获取不同选项数据的三态组合框 wsb_Combo。
三态组合框的实现思路是:用一个文本框和一个组合框叠合在一起,通常,组合框收拢到只有一个三角形大小,它左边的文字框部分就用文本框来模拟,并接受鼠标单击、双击事件;当点击三角形时,组合框才向左展开。
三态组合框 wsb_Combo 的制作过程:
- 在窗体中制作一个文本框wsb_ComboText,调整其高度为0.451cm;
- 紧贴文本框右边制作一个组合框控件wsb_Combo,宽度为0.476cm、高度和上边距和文本框相同。
三态组合框wsb_Combo 被选数据可以从 wsb_ComboText 中获取,可以直接在 Sub ViewSelected() 程序段中插入代码调用。但是双击文本框wsb_ComboText时,一开始只是被认为是单击事件,紧接着第二次才被确认为双击事件,所以在单击事件中不能用象“MsgBox”这类让程序停顿下来的语句,否则,将不会得到双击文本框wsb_ComboText 的事件响应。
《三态列表框和选择框.mdb》见本文附件。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|