一天闲来无事,研究一下comboBox的应用,发现这两个方法,咋一看还有点不知所云,所以下定决心研究一下到底用来做啥的。
itemMatchingFunction
就是在提示输入区输入字符用来搜索时的回调函数。它是在textInput change时候触发的,会去按顺序匹配(忽略大小写)首先找到的那一项并选中它。
但是很多时候我们需要自定义一下搜索的规则,譬如我们不想它从开头开始严格匹配,只要包含了输入的字符就显示包含输入字符最接近位置的那一项。它返回的是一个vector<int>,然后comboxBox回选中vector中第一个index。代码见下面。
labelToItemFunction
就是你再搜索时,如果没有搜索到匹配的值,那么就返回这个函数的返回值。所以如果你想在没有搜索到就添加一项到comboBox的数据源,就要用到这个函数了。(代码见下面)
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:view="com.view.*"> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.collections.ArrayList; import spark.components.ComboBox; import spark.events.IndexChangeEvent; [Bindable] public var complexDP:ArrayCollection = new ArrayCollection( [ {ingredient:"Salmon", category:"Meat"}, {ingredient:"Potato", category:"Starch"}, {ingredient:"Cucumber", category:"Vegetable"}, {ingredient:"Steak", category:"Meat"}, {ingredient:"Rice", category:"Starch"}, {ingredient:"Cumin", category:"Spice"} ] ); private function myLabelFunction(item:Object):String { return item ? item.name + " " + item.phone : ""; } private function myMatchingFunction(comboBox:ComboBox, inputText:String):Vector.<int> { var vec:Vector.<int> = new Vector.<int>(); var maxIndex:int = -1; var findIndex:int; for(var i:int; i < complexDP.length; i++) { var index:int = String(complexDP.getItemAt(i).ingredient).indexOf(inputText); if( index > 0) { if(maxIndex == -1 || maxIndex > index) { maxIndex = index; findIndex = i; } } } vec.push(findIndex); return vec; } private function myLabelToItemFunction(input:String):* { return {ingredient:input, category:"mystery"}; } protected function bcc_changeHandler(event:IndexChangeEvent):void { if(complexDP.getItemIndex(bcc.selectedItem) == -1) { complexDP.addItem(bcc.selectedItem); } } ]]> </fx:Script> <s:layout> <s:VerticalLayout/> </s:layout> <s:ComboBox id="bcc" dataProvider="{complexDP}" itemMatchingFunction="myMatchingFunction" change="bcc_changeHandler(event)" labelToItemFunction="myLabelToItemFunction" width="150" selectedIndex="0" labelField="ingredient"/> </s:Application>
相关推荐
在Windows Forms应用程序中,ComboBox控件是常用的交互元素,它允许用户从一组预定义的选项中选择一个。在某些情况下,我们可能希望实现ComboBox的模糊查询功能,这使得用户可以通过输入部分文本快速查找并选择所需...
在本文中,我们将深入探讨如何在Qt环境中使用QML实现一个自定义的ComboBox组件。ComboBox在用户界面设计中是一个常见的控件,它提供了一个下拉列表供用户选择,通常用于有限的选项展示。通过自定义ComboBox,我们...
在Windows编程中,ComboBox是一个非常常用的控件,它结合了文本输入框和下拉列表的功能。这个主题涵盖了几个关于ComboBox的高级特性和定制方法,包括改变下拉高度、强制展开下拉列表、实现自动查询功能、创建多列...
我在做项目时,经常用到easyUI框架,今天总结一下easyUI中的combobox吧 创建easyui-combobox的方法,在easyUI的官网都有: 1、从带有预定义结构的 元素创建组合框(combobox) <select id=cc class=easyui-...
WPF在DataGrid列中使用ComboBox绑定,改变ComboBox可回传至绑定的实体, 网上找了好久,终于搞定了,不是那个用枚举的例子!!ComboBox绑定的是一个实体列表. 程序名字叫 给唐僧选老婆!哈哈
在.NET框架下,ComboBox控件是Windows Forms应用程序中常见的组件,用于展示下拉列表供用户选择。本教程将深入探讨如何在C#环境下,利用VS2005为ComboBox添加自动补全或模糊查找功能,这在实际开发中非常实用,能够...
然而,有时我们可能需要在特定单元格中提供更丰富的交互功能,比如添加一个Combobox(下拉框)来让用户从预设选项中选择。本教程将详细介绍如何在StringGrid中嵌入Combobox控件,以增强用户界面的可操作性和用户体验...
多选框(Checkbox)和下拉选择框(ComboBox)是常见的用户输入组件,它们允许用户进行多项选择或从预设选项中选择。本篇文章将深入探讨基于jQuery的Combobox插件,这是一种将多选框与下拉功能结合的高效解决方案,...
在本文中,我们将深入探讨如何在C#编程中实现ComboBox控件的动态搜索功能,以提升用户界面的交互性和效率。ComboBox是Windows Forms应用程序中常用的一种控件,它允许用户从下拉列表中选择一个项或者手动输入内容。...
在Windows编程中,ComboBox是一个非常常用的控件,用于展示下拉列表供用户选择。当我们需要在ComboBox中添加更丰富的元素,比如颜色和样式,通常会涉及到GDI+库的使用,因为GDI+提供了强大的图形绘制功能。这篇教程...
在Windows Presentation Foundation (WPF) 中,ComboBox是一个常用的控件,它结合了下拉列表和文本框的功能,允许用户从预定义的选项中选择或输入自定义值。本篇文章将详细探讨如何为WPF ComboBox创建漂亮的按钮样式...
在C# WinForms开发中,ComboBox控件是一个常用的组件,用于提供下拉列表供用户选择。然而,有时候我们可能需要自定义ComboBox的外观或者功能,这就涉及到ComboBox的重绘技术。下面将详细介绍C# WinForms中ComboBox重...
现有的combobox只有单选功能,通过重画combobox构造多选combobox;
然而,有时我们可能需要在特定单元格内嵌入更复杂的控件,比如ComboBox,以提供下拉选择的功能。本篇文章将详细讲解如何在Delphi 7的StringGrid中动态地添加ComboBox控件,并为Grid赋值。 首先,我们需要理解...
ASP.NET中的ComboBox控件是一种非常实用的用户界面元素,它结合了下拉列表框和文本输入框的功能,允许用户从预定义的选项中选择或手动输入值。在C#编程中,ComboBox通常用于构建交互性强、用户体验良好的Web应用程序...
5. **美化ComboBox**:文件“美化ComboBox”可能包含对ComboBox外观的定制代码,如改变字体、颜色、边框样式等。这可以通过重写OnPaint方法实现。 ```csharp protected override void OnPaint(PaintEventArgs e) { ...
在Windows Forms开发中,`ComboBox`控件是一个常用的组件,用于提供用户选择一个或多个预定义选项的功能。本文将详细讲解如何实现“去除`ComboBox`边框,改变背景色以及字体颜色”的效果,以满足自定义UI的需求。...
AE 中使用 comboBox 添加图层 VB 代码详解 在 ArcEngine(AE)开发中,添加图层是非常常见的操作。为了实现图层的添加和字段的显示,我们可以使用 comboBox 控件来实现。下面我们将详细介绍如何使用 comboBox 在 AE...
ComboBox是计算机编程中常见的一种控件,特别是在GUI(图形用户界面)设计中。它结合了文本输入框和下拉列表的功能,用户可以在输入框中键入文字,也可以从下拉列表中选择已有的选项。在Windows编程、Web开发、...
在C#编程中,Combobox控件是一种常用的用户界面元素,用于展示一组可选项供用户选择。在“Combobox控件某些项不能选的例子”这个问题中,我们关注的是在Visual Studio 2008环境下创建的Combobox,其中部分选项显示为...