回 帖 发 新 帖 刷新版面

主题:如何設置下拉式組合框


組合框中嵌套在表格中.其數據來源為數組.現要求有以下的功能:
1.可以在組合框中輸入原本數組中沒有的資料但在數組中不增加此剛輸入的資料.
2.我要在此組合框中顯示第二列值,而不是第一列值(哪個屬性不記得了),其此組合框的屬性可如何設?

PS:關於第一點,把組合框的STYLE設置為0,即下拉式組合框,是可以允許輸入數據的,可是一但再次將光標移到此記錄上時,因為數組中根本沒有此數據(不增加數組項),失去光標后,則輸入的數據就會置為空.

以上請各位點解.謝謝!

回复列表 (共9个回复)

沙发

关于第一点,你可以在lostfocus中加入:This.AddItem(ALLTRIM( this.DisplayValue )),但是当你重新启动该表单,无效数据将丢失。
第二项,我不知道你是否说的是BoundColumn 属性。

板凳

[quote]关于第一点,你可以在lostfocus中加入:This.AddItem(ALLTRIM( this.DisplayValue )),但是当你重新启动该表单,无效数据将丢失。
第二项,我不知道你是否说的是BoundColumn 属性。[/quote]

谢谢你的回复,第一点是这样的。我是在表格(GRID)中使用下拉式组合框,因为和数据源绑定示,所以只要是组合框中没有的值再次得到光标后,就将源表中的字段一起置为空了。我现在要的就是不管数据源里有没有匹配的值,都不清空。有就可以直接在LIST中选,没有就不去管它。(注因为这个下拉式组合框的数组会随时变化,所以在表格中移动时,就算你在LOSTFOCUS中加进去,移到其它的记录上时,也许就没有了)

第二点就是,我们选下拉式组合框时,选定后其DISPLAYVALUE都是第一列,但我现在要把让此组合框中的DISPLAYVALUE值为第二列。列表框的数据如下:
 A001| MICROSOFT
 A002| DELL
 A003| SONY

当我选定A002时,在组合框中不要显示A002,而是显示DELL

3 楼

[quote]
当我选定A002时,在组合框中不要显示A002,而是显示DELL
[/quote]
可以在写入数组时将两列调换位置。

4 楼

[quote][quote]
当我选定A002时,在组合框中不要显示A002,而是显示DELL
[/quote]
可以在写入数组时将两列调换位置。[/quote]


因為第二列長度不固定,如果位置調換彈出來的列表不好看.

5 楼

建议在相同的位置设置一个文本框,当点击文本框时,文本框隐藏,列表框选择后,给文本框赋值并显示文本框。

6 楼

[quote]建议在相同的位置设置一个文本框,当点击文本框时,文本框隐藏,列表框选择后,给文本框赋值并显示文本框。[/quote]

問題出來了:用ADDITEM竟然不會增加LISTCOUNT! 我想是不是因為數組沒有變化,所以LISTCOUNT也不改變?如果是這樣,如何在不重新定義數組的情況下,把數組增加一行,把剛才輸入的資料增至數組中呢?我只知道插入數組的函數,但未看到增加數組的相關命令或函數.

7 楼

重新定义数组使数组增加一行并不会失去原有的数据,只需给新增加的行赋值就可以了。

8 楼

你将组合框的FirstElement属性设置为: 2看看。
具体怎么做我实在记不清了,好久没有这么用了。我记得好像就是调整属性就可以了。

9 楼

[quote]你将组合框的FirstElement属性设置为: 2看看。
具体怎么做我实在记不清了,好久没有这么用了。我记得好像就是调整属性就可以了。[/quote]

現在用的是最笨的方法:釋放數組,重新定義數組,再重新賦值數組!最后刷新組合框!
關於第二個問題,設置BOUNDCOLUMNT就可以了.

我来回复

您尚未登录,请登录后再回复。点此登录或注册