- 浏览: 589234 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
liugang_ok:
zhao_rock 写道看到这篇文章时已经是2015年11月2 ...
毕业三年之际写给可能迷茫的你我 -
ning2-eye:
...
2015年总结和2016年计划 -
sxdtzhaoxinguo:
我竟然看完了,很受启发!
2015年总结和2016年计划 -
hottymg:
...
2015年总结和2016年计划 -
hangzhoujava:
伪命题很多,比如有许多的上市公司还不如未上市公司,大家心里还是 ...
2015年总结和2016年计划
下面自定义class继承ComboBox类,实现的功能是将下拉列表框中的数据通过手工录入检索,而不是通过下拉列表选择,对于下拉列表中数据较多非常方便。需要注意的是,如果ComboBox中有chang事件,需要进行判断ComboBoxId.selectIndex != -1;否则或报空对象异常。
package components.common
{
import flash.events.Event;
import flash.events.FocusEvent;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import mx.collections.ICollectionView;
import mx.controls.Alert;
import mx.controls.ComboBox;
import mx.core.UIComponent;
import view.customer.viewCustomer;
public class AutoComplete extends ComboBox
{
public function AutoComplete()
{
super();
init();
}
private function init():void{
editable=true;
rowCount=5;
selectedIndex=-1;
isTextBoxStringChange=false;
isfocusInDropDown=false;
isAutoComplete=false;
//伪装成TextBox
setStyle("cornerRadius",0);
setStyle("arrowButtonWidth",0);
setStyle("fontWeight","normal");
setStyle("paddingLeft",0);
}
//获得焦点时,是否自动弹出下拉框,get set
private var isfocusInDropDown:Boolean=false;
//是否自动完成,get set
private var isAutoComplete:Boolean=false;
//类默认过滤函数,get set
private var _filterFunction:Function = myFilterFunction;
//文本是否发生了变化
private var isTextBoxStringChange:Boolean=false;
//按下的键是否是退格键
private var isBackSpaceKeyDown:Boolean=false;
/**
* 处理退格键按下的情况
*/
override protected function keyDownHandler(event:KeyboardEvent):void
{
if(!event.ctrlKey&&!event.shiftKey)
{
if(event.keyCode == Keyboard.BACKSPACE)
{
close();
isBackSpaceKeyDown=true;
}
else
{
isBackSpaceKeyDown=false;
}
//当按UP键向上选择时,到达最顶时,显示用户原来所需文字
if(event.keyCode == Keyboard.UP && selectedIndex==0)
{
selectedIndex=-1;
}
}
super.keyDownHandler(event);
}
/**
* 数据源发生变化,数据不为0弹出下拉列表
*/
override protected function collectionChangeHandler(event:Event):void
{
super.collectionChangeHandler(event);
if(dataProvider.length>0&&text!="")
{
// Alert.show(textInput.text+","+textInput.text.length);
open();
}
}
/**
* Displays the drop-down list.
*/
override public function open():void{
if(text!=""){
// Alert.show(textInput.text+","+text+"open()!!!"+isTextBoxStringChange);
super.open();
}
}
/**
* 获得焦点
*/
override protected function focusInHandler(event:FocusEvent):void{
if(isfocusInDropDown) open();
//
super.focusInHandler(event);
}
/**
* 文本发生变化时
*/
override protected function textInput_changeHandler(event:Event):void
{
// Alert.show(textInput.text+" text change!");
if(textInput.text == ""){
// Alert.show(textInput.text+",null");
isTextBoxStringChange=false;
}
else{
// Alert.show(textInput.text+","+event.toString());
isTextBoxStringChange=true;
super.textInput_changeHandler(event);
invalidateProperties();//调用该方法,随后会触发调用commitProperties()
}
}
override protected function commitProperties():void{
if(isTextBoxStringChange&&textInput.text!=""){
prompt=text;
filter(); //进行匹配项的查找
if(isAutoComplete&&!isBackSpaceKeyDown){
var autoCompleteString:String="";
if(dataProvider.length>0)
{
autoCompleteString=itemToLabel(dataProvider[0]);
textInput.setSelection(prompt.length,autoCompleteString.length);
prompt=autoCompleteString;
}
else{
textInput.setSelection(textInput.selectionEndIndex,textInput.selectionEndIndex);
}
}
else{
textInput.setSelection(textInput.selectionEndIndex,textInput.selectionEndIndex);
}
}
super.commitProperties();
}
/**
* 与TextBox同样的宽度
*/
override protected function measure():void
{
super.measure();
measuredWidth=UIComponent.DEFAULT_MEASURED_WIDTH;
}
/**
* 过滤操作
*/
private function filter():void{
var tmpCollection:ICollectionView = dataProvider as ICollectionView;
tmpCollection.filterFunction = _filterFunction;
tmpCollection.refresh();
}
/**
* 过滤函数
*/
private function myFilterFunction(item:Object):Boolean
{
var myLabel:String = itemToLabel(item);
if(myLabel.substr(0,text.length).toLowerCase() == prompt.toLowerCase())
{
return true;
}
return false;
}
/************************Get Set 属性**********************************/
public function get FilterFunction():Function{
return _filterFunction;
}
public function set FilterFunction(filterFunction:Function):void{
_filterFunction=filterFunction;
}
public function get IsfocusInDropDown():Boolean{
return isfocusInDropDown;
}
public function set IsfocusInDropDown(value:Boolean):void{
isfocusInDropDown=value;
}
public function get IsAutoComplete():Boolean{
return isAutoComplete;
}
public function set IsAutoComplete(value:Boolean):void{
isAutoComplete=value;
}
}
}
发表评论
-
Flex中调用js完成退出和全屏等功能
2013-11-06 11:39 12711、退出 在Flex中调用js的代码为 ExternalIn ... -
Flex浏览器标题中文乱码&AS调JS传参中文乱码
2013-09-18 18:27 32981、Flex中设置标题栏有两种方式,一种是在Applicati ... -
Flex Builder4.5 自动import包
2013-05-03 11:11 1647打开“首选参数” >> Flash Builder ... -
只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源
2013-01-11 11:48 4703在没有网络环境下的本地文件 目前在用Flex Build ... -
Flash AS3[转载]Error #2037: 函数调用序列不正确,或前面的调用不成功。
2012-11-05 16:58 1900Error #2037: 函数调用序列不正确,或前面的调用不成 ... -
DataGrid的一些关键属性
2012-10-16 15:36 1565DataGrid控件提供以下功能: 列可以具有不同宽度或同一 ... -
RIA/FLASH/FLEX
2012-06-01 14:29 1135RIA是macromedia在2004年提 ... -
The entity name must immediately follow the '&' in the entity reference.
2012-05-23 17:20 8323在flex中出现上述错误,是因为不识别&标识符,需要将 ... -
Flash Builder Default Browser(默认浏览器)
2012-04-18 11:09 1334菜单栏:Window->Preferences-> ... -
自定义事件实例
2012-03-27 16:28 1078重新回顾下自定义事件: 1 在派生组件中声明metadata元 ... -
Flex+Java+BlazeDS多文件上传
2012-03-12 23:13 2702Flex文件上传功能,后台服务器管理用Java,通信工具Bla ... -
利用java 后台导出Flex DataGrid为Excel
2011-12-05 17:35 3413利用java服务器端导出datagrid数据。附件两个项目分别 ... -
提高flex应用性能方法(二)
2011-11-21 11:48 29371. 不要使用new操作符创建数组,应使用 var a = ... -
提高flex应用性能方法(一)
2011-11-21 11:46 2797在RIA应用开发过程中,性能一直是我们关注的一个重点;生成sw ... -
Flex遍历ValueObject对象
2011-10-20 18:46 1936//_menu 为遍历对象 ... -
在as中给itemRenderer属性赋值
2011-09-23 11:48 1387首先申明一个ClassFactory类型的对象,将自定义组件置 ... -
flex记住密码等操作
2011-09-16 16:14 25541 在密码正确的情况下,如果“记住密码”是选中的,那么将用户名 ... -
日期的int变量小于10时补0
2011-09-15 17:41 1959很简单,就是用DateFormatter类实现 <Dat ... -
Flex Tree展开所有或某个节点
2011-09-14 14:23 6968flex Tree展开方法 1 tree.expandChil ... -
flex PopUpManager弹出窗口
2011-09-12 20:35 16087flex PopUpManager类 PopUpMana ...
相关推荐
`ComboBox`则是一个下拉列表控件,用户可以在文本框中输入文本,或者从下拉列表中选择预设的选项。 集成`ComboBox`到`DataGridView`中的步骤如下: 1. **创建ComboBox列**:首先,在`DataGridView`中添加一个新列...
总结,VS2008中的ComboBox下拉列表控件是一个功能强大的组件,不仅提供了多种选择方式,还能进行数据绑定和自定义事件处理。通过理解和熟练运用这些特性,开发者可以构建出更加用户友好的Windows Forms应用程序。
这个"Combobox下拉列表显示图片.zip"文件可能包含了实现这一功能的代码示例或教程。 在Windows Forms应用程序中,Combobox默认只支持显示文本,但通过自定义绘制或者使用第三方控件,我们可以实现显示图片与文本...
在Delphi 7中,`ComboBox`控件是常见的用户界面元素,用于提供一个下拉列表供用户选择。然而,有时候我们希望在用户鼠标悬停在下拉项上时显示额外的信息,这就是所谓的"hint"功能。在Delphi中,我们可以自定义这个...
一款非常实用的C# 的combobox的第三方控件,可以实现下拉后在下拉框中添加图片的功能,忘对有此功能需求的朋友所有帮助。
在描述中提到附带了源码,这意味着我们将有一个现成的解决方案,可能是一个名为DateTimePickerEx的自定义控件,这个控件结合了ComboBox的下拉列表特性和DateTimePicker的时间选择功能。 DateTimePicker是.NET ...
`ComboBox`控件通常用于在有限的选项中进行选择,它包含了文本输入框和下拉列表两部分。在`DataGridView`中,我们可以通过创建一个自定义的`DataGridViewColumn`子类,继承自`DataGridViewTextBoxColumn`,然后重写...
1. 改变ComboBox下拉高度:默认情况下,ComboBox的下拉列表高度是固定的,但通过编程可以自定义其高度。这涉及到修改COMBOBOXINFO结构体中的iListHeight成员,并调用SetWindowLong函数来更新控件的样式。这样做可以...
而为了增强用户交互和提供更多的操作选项,有时我们需要在`DataGridView`的单元格中集成`ComboBox`控件,这样用户就可以从下拉列表中选择值。本案例将详细介绍如何在`DataGridView`中实现`ComboBox`下拉列表的功能。...
首先,WPF的ComboBox是一个常用的控件,它结合了文本输入框和下拉列表的功能。用户可以输入文本,或者从下拉列表中选择一个预定义的选项。在默认情况下,ComboBox仅支持简单的文本项,但通过自定义控件和模板,我们...
在默认情况下,ComboBox内的文本都是单一的颜色,但有时为了提高可读性或者美化界面,我们可能需要为ComboBox下拉框内的字体添加不同的颜色。本篇文章将详细介绍如何在ComboBox下拉框内实现字体加颜色的功能。 首先...
在本讨论中,我们将深入探讨"VC.NET2005_ComboBox下拉列表框"这一主题,它涉及到在Visual Studio 2005中使用ComboBox控件创建交互式用户界面。 ComboBox控件是Windows Forms应用程序中的一个重要组件,它结合了文本...
一款非常实用的combobox的第三方控件,可以实现让其combobox下拉出TreeView,且可以对TreeView进行相关的选择,且只能选择树形数据中的最底层数据,选择后的数据的所有父节点也都相应的递归显示出来。非常实用,忘对...
总结来说,"VC/MFC ComboBox下拉列表控件程序"着重讲解了如何在MFC环境中使用ComboBox控件进行UI交互,涉及控件创建、项目添加、用户选择响应等多个关键步骤。掌握这些知识点对于开发具有下拉列表功能的Windows应用...
3. **事件处理**:转换过程中,需要确保所有必要的事件(如打开/关闭下拉列表、选择项等)在WPF环境中仍能正确触发。这可能需要重写一些事件处理代码。 4. **扩展性与自定义行为**:为了提供与原Silverlight控件...
本话题聚焦于一个特定的UI组件,即“带选择项CheckBox的下拉列表ComboBox控件”。这个控件结合了两种常见的界面元素:CheckBox和ComboBox,提供了一种更灵活的选择方式,特别是在需要用户从多个选项中进行多选时。 ...
`DataGridView`用于显示表格形式的数据,`ComboBox`用于提供下拉选项选择,而`DateTimePicker`则允许用户方便地选择日期和时间。下面我们将详细探讨如何在`DataGridView`中嵌入`ComboBox`和`DateTimePicker`,以及...
3、在下拉列表中可显示自定义的多列数据。 4、可在下拉列表中通过输入关键字,自动搜索符合条件的数据行。 5、可指定不同的值列和显示列。 6、可设置是否显示行头和列头。 7、程序根据显示列的多少和宽度,自动调整...
在给定的标题“Ext ComboBox 下拉多选框带搜索功能”中,我们关注的是一个特别的ComboBox实现,它不仅允许用户从下拉列表中选择多个选项,还具备搜索功能,使得用户可以更高效地找到他们想要的选择项。 ComboBox在...
C# DataGridView 中 ComboBox 下拉更改事件 在 C# 开发中,DataGridView 控件是应用非常广泛的控件之一。然而,在使用 DataGridView 控件时,如何在单元格中添加按钮、下拉菜单,并且添加事件和事件处理则是许多...