-
2019-01-15 14:08:51
1 命名空间及继承
命名空间1:System.Windows.Forms
继承1:Object→MarshalByRefObject→Component→Control→ListControl→ComboBox
命名空间2:System.Windows.Controls
继承2:
Object→DispatcherObject→DependencyObject→Visual→UIElement→FrameworkElement→Control→ItemsControl→Selector→ComboBox
2 ComboBox属性及事件
(1)DropDownStyle(组合框样式属性):①DropDown(默认)下拉框可编辑。②Simple:简单组合框。③DropDownList:下拉框不可编辑。具体样式如下所示:
(2)DataSource(数据源属性):设置cmb的数据源。以下为代码添加cmb数据源并添加到Form窗体中。
public partial class Form1 : Form { public Form1() { InitializeComponent(); //数据源为一个string数组 string []daysOfWeek = new[]{ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }; // 初始化cmb ComboBox cmb = new ComboBox(); cmb.DataSource = daysOfWeek; cmb.Location = new System.Drawing.Point(12, 12); cmb.Name = "comboBox"; cmb.Size = new System.Drawing.Size(166, 21); cmb.DropDownStyle = ComboBoxStyle.DropDownList; // 添加cmb到Form中 this.Controls.Add(cmb); } }
(3)Items(项目集合属性):获取一个对象,该对象表示此 ComboBox 中所含的项的集合。可以使用以下方法添加少量item项:
private void addButton_Click(object sender, System.EventArgs e) { cmb.Items.Add(textBox1.Text); }
(4) SelectedIndex:获取或设置 ComboBox 中当前选定的项索引。
(4) SelectedItem:获取或设置 ComboBox 中当前选定的项。
(6)//SelectedText:获取或设置 ComboBox 的可编辑部分中选定的文本。
(7)//SelectedValue:获取或设置由 ValueMember 属性指定的成员属性的值(仅在绑定数据源时,设置了ValueMember时才可以用)。
(8)Text:获取或设置与此控件关联的文本。
常用事件:SelectedIndexChanged()
3 ComboBox之Items
(1)cmb.Items.Count:获取集合中的项数。
(2)cmb.Items.Add(Object item):向 ComboBox 的项列表添加项。
(3)cmb.Items.AddRange(Object[]):向 ComboBox 的项列表添加项的数组。
(4)cmb.Items.Clear():从 ComboBox 中移除所有项。
(5)cmb.Items.Contains(Object item):确定指定项是否位于集合内。
(6)cmb.Items.IndexOf(Object item):检索指定的项在集合中的索引。
(7)cmb.Items.Insert(int,Object item):将一项插入集合中指定索引处。
(8)cmb.Items.Remove(int,Object item):从 ComboBox 中删除指定的项。
(9)cmb.Items.RemoveAt(int):移除 ComboBox 中指定索引处的项。
(10)cmb.Items.ToString():返回表示当前对象的字符串。
4 参考
1.ComboBox.ObjectCollection Class
更多相关内容 -
如何给combobox添加下拉内容呀?
2021-12-24 10:12:01 -
EasyUI学习之Combobox下拉列表(1)
2020-08-31 19:57:37主要为大家详细介绍了EasyUI学习之Combobox下拉列表的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
Ext中下拉列表ComboBox组件store数据格式用法介绍
2020-09-05 03:40:56本文为大家详细介绍下Ext中下拉列表ComboBox组件store数据格式的基本用法,感兴趣的朋友可以参考下哈,希望对大家有所帮助 -
combobox:js模拟下拉框
2021-05-14 02:43:39combobox js模拟下拉框 使用 只需在jquery后引入jquery.validation文件 [removed][removed] [removed][removed] 初始化 选择元素调用combobox方法传入配置项 $('select').combobox(options); 方法 调用方式 //选择... -
Winform中给下拉框(ComboBox或LookUpEdit)添加内容
2021-08-29 15:32:53一、实现效果 1.1、Winform的Combox下拉框效果 1.2、Dev中Winform的ComboxEdit与LookUpEdit下拉框效果 ...* 1、给comboBox组件添加信息和获取选中的信息 * Date:2021 * Version:0.1版本 * Author:Coff.一、实现效果
1.1、Winform的Combox下拉框效果
1.2、Dev中Winform的ComboxEdit与LookUpEdit下拉框效果
二、实现核心
2.1、Winform的Combox下拉框
/*** * Title:"Winfrom" 项目 * 主题:Winform的UI帮助类 * Description: * 功能: * 1、给comboBox组件添加信息和获取选中的信息 * Date:2021 * Version:0.1版本 * Author:Coffee * Modify Recoder: */ using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; namespace Utils { class WinformUIHelper { #region ComboxEdit组件 /// <summary> /// 给Combox组件添加内容 /// </summary> /// <param name="comboBox">comboBox组件</param> /// <param name="infoList">信息列表</param> /// <param name="showFirstValue">是否显示第一个值(true:表示显示)</param> /// <returns>返回添加结果(true:表示添加成功)</returns> public static bool AddInfoToCombox(ComboBox comboBox, List<string> infoList, bool showFirstValue = true) { bool result = false; if (infoList != null && infoList.Count > 0) { comboBox.Items.Clear(); comboBox.DataSource = infoList; //默认显示第一个值 if (showFirstValue) { comboBox.SelectedIndex = 0; } else { comboBox.SelectedIndex = -1; } result = true; } return result; } /// <summary> /// 给Combox组件添加键值对内容 /// </summary> /// <param name="comboBox">comboBox组件</param> /// <param name="infoDic">信息键值对</param> /// <param name="showFirstValue">是否显示第一个值(true:表示显示)</param> /// <returns>返回添加结果(true:表示添加成功)</returns> public static bool AddInfoToCombox(ComboBox comboBox, Dictionary<string, string> infoDic, bool showFirstValue = true) { bool result = false; if (infoDic != null && infoDic.Count > 0) { comboBox.Items.Clear(); BindingSource bs = new BindingSource(); bs.DataSource = infoDic; comboBox.DataSource = bs; //实际要用的字段 comboBox.ValueMember = "Key"; //展示的字段 comboBox.DisplayMember = "Value"; //默认显示第一个值 if (showFirstValue) { comboBox.SelectedIndex = 0; } else { comboBox.SelectedIndex = -1; } result = true; } return result; } /// <summary> /// 给Combox组件添加键值对内容 /// </summary> /// <typeparam name="T">实体</typeparam> /// <param name="comboBox">Combox组件</param> /// <param name="listModel">实体列表</param> /// <param name="idFieldName">id字段名称</param> /// <param name="displayInfoFieldName">显示的字段名称</param> /// <param name="showFirstValue">是否显示第一个值(true:表示显示)</param> /// <returns>返回添加结果(true:表示添加成功)</returns> public static bool AddInfoToCombox<T>(ComboBox comboBox, List<T> listModel, string idFieldName,string displayInfoFieldName, bool showFirstValue = true) { bool result = false; if (listModel != null && listModel.Count>0) { comboBox.Items.Clear(); comboBox.DataSource = listModel; comboBox.ValueMember = idFieldName; comboBox.DisplayMember = displayInfoFieldName; //默认显示第一个值 if (showFirstValue) { comboBox.SelectedIndex = 0; } else { comboBox.SelectedIndex = -1; } result = true; } return result; } /// <summary> /// 获取Combox组件当前选择的内容 /// </summary> /// <param name="comboBox">comboBox组件</param> /// <returns>返回当前选择的键值对</returns> public static Dictionary<string, string> GetComboxInfoOfSelected(ComboBox comboBox) { Dictionary<string, string> tmpDic = new Dictionary<string, string>(); if (comboBox!=null) { if (comboBox.SelectedItem!=null) { string keyValue = comboBox.SelectedItem.ToString(); string key = comboBox.SelectedValue.ToString(); string value = comboBox.Text; tmpDic.Add(key, value); } } return tmpDic; } #endregion }//Class_end }
2.2、Dev中Winform的ComboxEdit与LookUpEdit下拉框
/*** * Title:"Winfrom" 项目 * 主题:Winform的UI帮助类 * Description: * 功能: * 1、给comboBox组件添加信息和获取选中的信息 * 2、给lookUpEdit组件添加信息和获取选中的信息 * Date:2021 * Version:0.1版本 * Author:Coffee * Modify Recoder: */ using DevExpress.XtraEditors; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Utils { class WinformUIHelper { #region ComboxEdit组件 /// <summary> /// 给ComboxEdit组件添加内容 /// </summary> /// <param name="comboBoxEdit">comboBoxEdit组件</param> /// <param name="infoList">信息列表</param> /// <param name="showFirstValue">是否显示第一个值(true:表示显示)</param> /// <returns>返回添加结果(true:表示添加成功)</returns> public static bool AddInfoToComboxEdit(ComboBoxEdit comboBoxEdit, List<string> infoList, bool showFirstValue = true) { bool result = false; if (infoList != null && infoList.Count > 0) { comboBoxEdit.Properties.Items.Clear(); foreach (var item in infoList) { comboBoxEdit.Properties.Items.Add(item); } //默认显示第一个值 if (showFirstValue) { comboBoxEdit.SelectedIndex = 0; } else { comboBoxEdit.SelectedIndex = -1; } result = true; } return result; } /// <summary> ///是否禁用ComboxEidt手动输入 /// </summary> public static void IsDisableInputOfComboxEdit(bool isDisable=true) { if (isDisable) { comboBoxEdit_PageSize.Properties.TextEditStyle = TextEditStyles.DisableTextEditor; } else { comboBoxEdit_PageSize.Properties.TextEditStyle = TextEditStyles.Standard; } } /// <summary> /// 给LookupEdit组件添加内容 /// </summary> /// <param name="lookUpEdit">lookUpEdit组件</param> /// <param name="infoDic">信息字典</param> /// <param name="matchFieldName">匹配自动搜索的字段</param> /// <param name="manualInput">手动输入(true:表示开启)</param> /// <param name="showFirstValue">是否显示第一个值(true:表示显示)</param> /// <returns></returns> public static bool AddInfoToLookupEdit(LookUpEdit lookUpEdit,Dictionary<string,string> infoDic, string matchFieldName="",bool manualInput=true,bool showFirstValue=true) { bool result = false; if (infoDic!=null && infoDic.Count>0) { lookUpEdit.Properties.DataSource = infoDic; //实际需要使用的字段 lookUpEdit.Properties.ValueMember = "Key"; //显示的字段 lookUpEdit.Properties.DisplayMember = "Value"; //自动搜索datasouse,选择与之匹配的值,没有的情况下赋值null ,value的值必须与valuemember的数据类型一致。 lookUpEdit.EditValue = matchFieldName; //自适应宽度 lookUpEdit.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup; //默认允许手动输入 if (manualInput) { lookUpEdit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard; } else { lookUpEdit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; } //默认显示第一个值 if (showFirstValue) { lookUpEdit.ItemIndex = 0; } else { lookUpEdit.Properties.NullText = ""; lookUpEdit.ItemIndex = -1; } result = true; } return result; } /// <summary> /// 给LookupEdit组件添加内容 /// </summary> /// <param name="lookUpEdit">lookUpEdit组件</param> /// <param name="tmpList">信息字典</param> /// <param name="matchFieldName">匹配自动搜索的字段</param> /// <param name="manualInput">手动输入(true:表示开启)</param> /// <param name="showFirstValue">是否显示第一个值(true:表示显示)</param> /// <returns></returns> public static bool AddInfoToLookupEdit<T>(LookUpEdit lookUpEdit, List<T> tmpList, string matchFieldName = "", bool manualInput = true, bool showFirstValue = true) { bool result = false; if (tmpList != null && tmpList.Count > 0) { lookUpEdit.Properties.DataSource = tmpList; //实际需要使用的字段 lookUpEdit.Properties.ValueMember = "Key"; //显示的字段 lookUpEdit.Properties.DisplayMember = "Value"; //自动搜索datasouse,选择与之匹配的值,没有的情况下赋值null ,value的值必须与valuemember的数据类型一致。 lookUpEdit.EditValue = matchFieldName; //自适应宽度 lookUpEdit.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup; //默认允许手动输入 if (manualInput) { lookUpEdit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard; } else { lookUpEdit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; } //默认显示第一个值 if (showFirstValue) { lookUpEdit.ItemIndex = 0; } else { lookUpEdit.Properties.NullText = ""; lookUpEdit.ItemIndex = -1; } result = true; } return result; } /// <summary> /// 给LookupEdit组件添加模型内容 /// </summary> /// <typeparam name="T">模型</typeparam> /// <param name="lookUpEdit">lookUpEdit组件</param> /// <param name="tmpList">模型列表</param> /// <param name="modelFieldNameList">模型字段名称列表</param> /// <param name="modelFieldStartIndex">模型字段的起始索引</param> /// <param name="displayFieldName">下拉框显示内容的字段名称</param> /// <param name="valueFieldName">下拉框显示内容实际对应使用的字段名称</param> /// <param name="matchFieldName">下拉框搜索匹配的字段名称</param> /// <param name="manualInput">手动输入(true:表示开启)</param> /// <param name="showFirstValue">是否显示第一个值(true:表示显示)</param> /// <returns></returns> public static bool AddModelInfoToLookupEdit<T>(LookUpEdit lookUpEdit, List<T> tmpList, List<string> modelFieldNameList,int modelFieldStartIndex, string displayFieldName,string valueFieldName,string matchFieldName = "", bool manualInput = true, bool showFirstValue = true) { bool result = false; if (tmpList != null && tmpList.Count > 0 && modelFieldNameList!=null && modelFieldNameList.Count>0) { lookUpEdit.Properties.DataSource = tmpList; //实际需要使用的字段 lookUpEdit.Properties.ValueMember = valueFieldName; //显示的字段 lookUpEdit.Properties.DisplayMember = displayFieldName; //自动搜索datasouse,选择与之匹配的值,没有的情况下赋值null ,value的值必须与valuemember的数据类型一致。 lookUpEdit.EditValue = matchFieldName; //自适应宽度 lookUpEdit.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup; //填充列 lookUpEdit.Properties.PopulateColumns(); //设置列属性 int count = (modelFieldStartIndex+modelFieldNameList.Count); for (int i = modelFieldStartIndex; i < count; i++) { //lookUpEdit.Properties.Columns[0].Visible = false; lookUpEdit.Properties.Columns[i].Caption = modelFieldNameList[i]; } //lookUpEdit.Properties.Columns[1].Width = 120; //lookUpEdit.Properties.Columns[2].Width = 300; 控制选择项的总宽度 //lookUpEdit.Properties.PopupWidth = 200; //默认允许手动输入 if (manualInput) { lookUpEdit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard; } else { lookUpEdit.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor; } //默认显示第一个值 if (showFirstValue) { lookUpEdit.ItemIndex = 0; } else { lookUpEdit.Properties.NullText = ""; lookUpEdit.ItemIndex = -1; } result = true; } return result; } /// <summary> /// 获取comboBoxEdit组件当前选择的内容 /// </summary> /// <param name="comboBoxEdit">comboBoxEdit组件</param> /// <returns>返回当前选择的键值对</returns> public static Dictionary<string, string> GetComboxInfoOfSelected(ComboBoxEdit comboBoxEdit) { Dictionary<string, string> tmpDic = new Dictionary<string, string>(); if (comboBoxEdit != null) { if (comboBoxEdit.SelectedItem != null) { string key = comboBoxEdit.EditValue.ToString(); string value = comboBoxEdit.Text.Trim(); tmpDic.Add(key, value); } } return tmpDic; } /// <summary> /// 获取lookUpEdit组件当前选择的内容 /// </summary> /// <param name="lookUpEdit">lookUpEdit组件</param> /// <returns>返回当前选择的键值对</returns> public static Dictionary<string, string> GetLookUpEditInfoOfSelected(LookUpEdit lookUpEdit) { Dictionary<string, string> tmpDic = new Dictionary<string, string>(); if (lookUpEdit != null) { if (lookUpEdit.EditValue != null) { string key = lookUpEdit.EditValue.ToString(); string value = lookUpEdit.Text.Trim(); tmpDic.Add(key, value); } } return tmpDic; } #endregion }//Class_end }
三、使用方法
3.1、Winform的Combox下拉框
①引用命名空间【using Utils;】
②添加内容到下拉组件中
#region UI /// <summary> /// 添加列表信息到下拉框中 /// </summary> private void AddListInfoToCombox() { List<string> tmpList = new List<string>(); for (int i = 0; i < 3; i++) { tmpList.Add($"内容{i}"); } WinformUIHelper.AddInfoToCombox(comboBox_UI,tmpList); } /// <summary> /// 添加键值对信息到下拉框中 /// </summary> private void AddDicInfoToCombox() { Dictionary<string, string> tmpDic = new Dictionary<string, string>(); for (int i = 0; i < 3; i++) { string key = $"0076yurdkh0{i}"; string value = $"车间{i}"; tmpDic.Add(key,value); } WinformUIHelper.AddInfoToCombox(comboBox_UI2, tmpDic); } /// <summary> /// 添加实体信息到下拉框中 /// </summary> private void AddModelInfoToCombox() { List<people> peoples = new List<people>() { new people("20346584368001","杨思思",25,"女","3536728921@qq.com","测试地址1","高级人事经理"), new people("20346584368002","张茜",23,"女","3536728922@qq.com","测试地址2","产品经理"), new people("20346584368003","张伊伊",23,"女","3536728923@qq.com","测试地址3","销售经理"), }; people people = new people(); WinformUIHelper.AddInfoToCombox<people>(comboBox_UI3, peoples,"Email","Name",false); } private void ShowInfo(string info) { textBox_Info.Text = info; } #endregion public class people { public string Id { get; set; } public string Name { get; set; } public int Age { get; set; } public string Sex { get; set; } public string Email { get; set; } public string Address { get; set; } public string Work { get; set; } public people() { } public people(string id,string name,int age,string sex,string email,string address,string work) { this.Id = id; this.Name = name; this.Age = age; this.Sex = sex; this.Email = email; this.Address = address; this.Work = work; } }
③ 编写选择值改变的方法内容
private void comboBox_UI_SelectedValueChanged(object sender, EventArgs e) { Dictionary<string,string> tmpDic = WinformUIHelper.GetComboxInfoOfSelected(comboBox_UI); if (tmpDic != null && tmpDic.Count > 0) { string info = $"当前选择的内容为: 键:{tmpDic.ElementAt(0).Key} 值:{tmpDic.ElementAt(0).Value}"; ShowInfo(info); } } private void comboBox_UI2_SelectedValueChanged(object sender, EventArgs e) { Dictionary<string, string> tmpDic = WinformUIHelper.GetComboxInfoOfSelected(comboBox_UI2); if (tmpDic!=null && tmpDic.Count>0) { string info = $"当前选择的内容为: 键:{tmpDic.ElementAt(0).Key} 值:{tmpDic.ElementAt(0).Value}"; ShowInfo(info); } } private void comboBox_UI3_SelectedValueChanged(object sender, EventArgs e) { Dictionary<string, string> tmpDic = WinformUIHelper.GetComboxInfoOfSelected(comboBox_UI3); if (tmpDic != null && tmpDic.Count > 0) { string info = $"当前选择的内容为: 键:{tmpDic.ElementAt(0).Key} 值:{tmpDic.ElementAt(0).Value}"; ShowInfo(info); } }
3.2、Dev中Winform的ComboxEdit与LookUpEdit下拉框
①引用命名空间【using Utils;】
②添加内容到下拉组件中
#region UI /// <summary> /// 添加列表信息到下拉框中 /// </summary> private void AddListInfoToComboxEdit() { List<string> tmpList = new List<string>(); for (int i = 0; i < 3; i++) { tmpList.Add($"内容{i}"); } WinformUIHelper.AddInfoToComboxEdit(comboBoxEdit_UI1, tmpList); } /// <summary> /// 添加键值对信息到下拉框中 /// </summary> private void AddInfoToLookupEdit() { Dictionary<string, string> tmpDic = new Dictionary<string, string>(); for (int i = 0; i < 3; i++) { string key = $"0076yurdkh0{i}"; string value = $"车间{i}"; tmpDic.Add(key, value); } WinformUIHelper.AddInfoToLookupEdit(lookUpEdit_UI1,tmpDic); } /// <summary> /// 添加实体信息到下拉框中 /// </summary> private void AddModelInfoToLookupEdit() { List<people> peoples = new List<people>() { new people("20346584368001","杨思思",25,"女","3536728921@qq.com","测试地址1","高级人事经理"), new people("20346584368002","张茜",23,"女","3536728922@qq.com","测试地址2","产品经理"), new people("20346584368003","张伊伊",23,"女","3536728923@qq.com","测试地址3","销售经理"), }; people people = new people(); List<string> diplayFieldNameList = new List<string>() { "编号","姓名","年龄","邮箱","地址","职位" }; WinformUIHelper.AddModelInfoToLookupEdit<people>(lookUpEdit_UI2, peoples, diplayFieldNameList, 0, "Name", "Id","Name",true, true); } private void ShowInfo(string info) { memoEdit_Info.Text = info; } #endregion public class people { public string Id { get; set; } public string Name { get; set; } public int Age { get; set; } public string Sex { get; set; } public string Email { get; set; } public string Address { get; set; } public string Work { get; set; } public people() { } public people(string id, string name, int age, string sex, string email, string address, string work) { this.Id = id; this.Name = name; this.Age = age; this.Sex = sex; this.Email = email; this.Address = address; this.Work = work; } }
③ 编写选择值改变的方法内容
private void comboBoxEdit_UI1_SelectedValueChanged(object sender, EventArgs e) { Dictionary<string, string> tmpDic = WinformUIHelper.GetComboxInfoOfSelected(comboBoxEdit_UI1); if (tmpDic != null && tmpDic.Count > 0) { string info = $"当前选择的内容: 键:{tmpDic.ElementAt(0).Key} 值:{tmpDic.ElementAt(0).Value}"; ShowInfo(info); } } private void lookUpEdit_UI1_EditValueChanged(object sender, EventArgs e) { Dictionary<string, string> tmpDic = WinformUIHelper.GetLookUpEditInfoOfSelected(lookUpEdit_UI1); if (tmpDic != null && tmpDic.Count > 0) { string info = $"当前选择的内容: 键:{tmpDic.ElementAt(0).Key} 值:{tmpDic.ElementAt(0).Value}"; ShowInfo(info); } } private void lookUpEdit_UI2_EditValueChanged(object sender, EventArgs e) { Dictionary<string, string> tmpDic = WinformUIHelper.GetLookUpEditInfoOfSelected(lookUpEdit_UI2); if (tmpDic != null && tmpDic.Count > 0) { string info = $"当前选择的内容: 键:{tmpDic.ElementAt(0).Key} 值:{tmpDic.ElementAt(0).Value}"; ShowInfo(info); } }
其他参考资料:
-
C#自定义ComboBox下拉框
2018-12-25 20:42:28这个是从国外网站直接下载的自定义ComboBox下拉框,支持下拉列表中带复选框,下来列表多列列表。 -
wpf-ComboBox下拉菜单简单使用
2021-06-24 14:54:45问题描述 我有两个combox,都需要以列表作为数据源,其中一个还涉及显示时的转换(后台是“+/-/ ”,前台则要显示“正向/反向/无方向”)。本篇涉及数据源的绑定和后台获取结果。 解决方案 ...ComboBox Gri问题描述
我有两个combobox,都需要以列表作为数据源,其中一个还涉及显示时的转换(后台是“+/-/ ”,前台则要显示“正向/反向/无方向”)。本篇涉及数据源的绑定和后台获取结果。
解决方案
前台
<Window.Resources> <local:DirectionToZhConverter x:Key="dir2zh"/> </Window.Resources> <!--这个需要转换--> <ComboBox Grid.Row="4" Grid.Column="1" x:Name="gfDirection" SelectedIndex="0"> <ComboBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Converter={StaticResource dir2zh}}" /> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> <!--这个不用转换--> <ComboBox Grid.Row="5" Grid.Column="1" x:Name="gfType" SelectedIndex="0"/>
其中SelectedIndex是指默认选择的选项的index。
后台
public GraphFeatureWindow() { InitializeComponent(); List<string> directions = new List<string>{"+", "-", ""}; List<string> types = new List<string> { "promoter", "primer_bind"}; this.gfDirection.ItemsSource = directions; this.gfType.ItemsSource = types; } private void Submit_Click(object sender, RoutedEventArgs e) { string dire_select = Convert.ToString(this.gfDirection.SelectedItem); # 获取值 string type_select = Convert.ToString(this.gfType.SelectedItem); MessageBox.Show("*Direction:" + dire_select + "#Type:" + type_select + "&Name:" + gfi.Name); }
转换器
/// <summary> /// 把DisplayFeatureObject.direction转换成汉字 /// </summary> public class DirectionToZhConverter : IValueConverter { object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture) { string d = System.Convert.ToString(value); if (d == "+") { return "正向"; } else if (d == "-") { return "反向"; } else { return "无方向"; } } object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { string d = System.Convert.ToString(value); if (d == "正向") { return "+"; } else if (d == "反向") { return "-"; } else { return ""; } } }
结果就是点击按钮,会弹出消息:
-
Easyui之ComboBox下拉列表组
2020-06-30 22:52:23今天为大家分享的是Easyui中的Comobox组件,下拉列表组的实现方式! 属性 首先来展示一下comobox组件中的一些属性、事件、以及方法吧~ 事件 方法 当然,这些ComoBox的属性、方法、事件都是从Combo组件中拓展而...ComboBox组件
前言
今天为大家分享的是Easyui中的Comobox组件,下拉列表组的实现方式!
属性
首先来展示一下comobox组件中的一些属性、事件、以及方法吧~
事件
方法
当然,这些ComoBox的属性、方法、事件都是从Combo组件中拓展而来的,所以不仅有Combo的属性、还有ComboBox组件的属性!案例演示
博主还是喜欢按照这个固定的套路来吧,分为两种方式:
1、静态html实现
这种方式一般不通用的,所以我通常都使用动态的方式去获取数据!代码展示:
jsp页面需要必须引入css、js样式:
<!-- 写全局样式 --> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/themes/default/easyui.css"> <!-- 定义图标的样式 --> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/themes/icon.css"> <!--组件库源文件的js文件--> <script type="text/javascript" src="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/jquery.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/jquery.easyui.min.js"></script>
首先jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- 写全局样式 --> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/themes/default/easyui.css"> <!-- 定义图标的样式 --> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/themes/icon.css"> <!--组件库源文件的js文件--> <script type="text/javascript" src="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/jquery.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/static/js/jquery-easyui-1.5.1/jquery.easyui.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath }/comobox.js"></script> <title>静态方式实现</title> </head> <body> <h2>Basic ComboBox</h2> <p>Type in ComboBox to try auto complete.</p> <div style="margin:20px 0"></div> <div class="easyui-panel" style="width:100%;max-width:400px;padding:30px 60px;"> <div style="margin-bottom:20px"> <select class="easyui-combobox" name="state" label="State:" labelPosition="top" style="width:100%;"> <option value="AL">Alabama</option> <option value="AK">Alaska</option> <option value="AZ">Arizona</option> <option value="AR">Arkansas</option> <option value="CA">California</option> <option value="CO">Colorado</option> <option value="CT">Connecticut</option> <option value="DE">Delaware</option> <option value="FL">Florida</option> <option value="GA">Georgia</option> <option value="HI">Hawaii</option> <option value="ID">Idaho</option> <option value="IL">Illinois</option> <option value="IN">Indiana</option> <option value="IA">Iowa</option> <option value="KS">Kansas</option> <option value="KY">Kentucky</option> <option value="LA">Louisiana</option> <option value="ME">Maine</option> <option value="MD">Maryland</option> <option value="MA">Massachusetts</option> <option value="MI">Michigan</option> <option value="MN">Minnesota</option> <option value="MS">Mississippi</option> <option value="MO">Missouri</option> <option value="MT">Montana</option> <option value="NE">Nebraska</option> <option value="NV">Nevada</option> <option value="NH">New Hampshire</option> <option value="NJ">New Jersey</option> <option value="NM">New Mexico</option> <option value="NY">New York</option> <option value="NC">North Carolina</option> <option value="ND">North Dakota</option> <option value="OH" selected>Ohio</option> <option value="OK">Oklahoma</option> <option value="OR">Oregon</option> <option value="PA">Pennsylvania</option> <option value="RI">Rhode Island</option> <option value="SC">South Carolina</option> <option value="SD">South Dakota</option> <option value="TN">Tennessee</option> <option value="TX">Texas</option> <option value="UT">Utah</option> <option value="VT">Vermont</option> <option value="VA">Virginia</option> <option value="WA">Washington</option> <option value="WV">West Virginia</option> <option value="WI">Wisconsin</option> <option value="WY">Wyoming</option> </select> </div> </div> </body> </html>
然后需要用到的js文件:
$(function(){ url:combobox_data1.json })
2、js动态获取数据
1、通过元素创建一个预定义结构的下拉列表框。
<select id="cc" class="easyui-combobox" name="dept" style="width:200px;"> <option value="aa">---请选择---</option> <option>湖南省</option> <option>四川省</option> <option>河南省</option> <option>云南省</option> <option>浙江省</option> <option>贵州省</option> <option>江苏省</option> </select>
当然这段代码是放在jsp页面的~
comobox.js文件:
$(function(){ /*url:combobox_data1.json,*/ $('#cc').combobox({ url:'combobox_data.json', valueField:'id', textField:'name' }); })
运行结果:
话说博主个人觉得这种方式更加适合用来做地区的二级联动啦!2、通过标签创建下拉列表框。
jsp页面:
<input id="cc" class="easyui-combobox" name="dept" data-options="valueField:'id', textField:'text', url:'combobox_data1.json'" />
js文件:
$(function(){ /*url:combobox_data1.json,*/ $('#cc').combobox({ url:'combobox_data.json', valueField:'id', textField:'text' }); })
运行结果:
第二种方式记得在webcontent下面导入json字符串:[{ "id":1, "text":"Java", "desc":"Write once, run anywhere" },{ "id":2, "text":"C#", "desc":"One of the programming languages designed for the Common Language Infrastructure" },{ "id":3, "text":"Ruby", "selected":true, "desc":"A dynamic, reflective, general-purpose object-oriented programming language" },{ "id":4, "text":"Perl", "desc":"A high-level, general-purpose, interpreted, dynamic programming language" },{ "id":5, "text":"Basic", "desc":"A family of general-purpose, high-level programming languages" }]
JSON数据格式化例子:
[{ "id":1, "text":"text1" },{ "id":2, "text":"text2" },{ "id":3, "text":"text3", "selected":true },{ "id":4, "text":"text4" },{ "id":5, "text":"text5" }]
3、也可使用Javascript创建下拉列表框。
jsp页面:
<input id="cc" name="dept" value="aa">
js代码:
$('#cc').combobox({ url:'combobox_data.json', valueField:'id', textField:'text' });
关于js代码中的一些属性:
属性名称 默认值 url 路径 valueField value textField text 注意:
url路径记得和你引入的json字符串保持一致!
valueField 属性类型是String
valueField、textField 基础数据值名称绑定到下拉列表框
默认值是text 但是也可不使用text!
总结
博主今天的内容就分享到这里啦,关于comobox后台的实现,有空会继续思考编码的哈,到时候继续分享给你们,欢迎评论留言交流噢,拜拜~
-
C# 自定义ComboBox显示颜色下拉框
2014-03-12 10:33:08Custom Controls C# WinForm 自定义ComboBox 显示颜色下拉框,在WinForm界面设计方面,采用自定义的ComboBox控件实现下拉框可选择颜色列表。可显示颜色小方块,源代码可在VS2008下编译通过。 -
关于向easyui插件combobox,添加下拉选项
2013-12-17 14:44:36今天在开发过程中,遇到了一个如何关于向easyui插件combobox,添加下拉选项的问题。搞了很久,终于曲线找到了一条解决办法,把解决问题的过程记录如下,供有需要的人参考。 源代码如下,通过ajax调用,从服务端... -
JavaFX使用ChoiceBox、ComboBox实现下拉列表
2020-02-19 18:22:10//下拉列表 ChoiceBox<Student> cb = new ChoiceBox(); cb.getItems().addAll(s1,s2,s3,s4,s5); //数据转换 cb.setConverter(new StringConverter() { //只显示名字 @Override public String toString... -
QT comboBox设置下拉菜单()
2018-09-29 11:50:19设置combobox的item方法有两种 方法一:适合有规律的,可利用for循环减少代码量,当然也可以一个一个插入 方法二:适合无规律的 代码如下 //方法一: for (int i=1;i&lt;5;i++) { ui-&gt... -
QT ComboBox 下拉对话框
2018-08-02 14:13:32目录 一、简介 二、ui界面设计 ...向窗口中拖入一个Combo Box控件,双击Combo Box对象,添加下拉菜单的选项。 可以在属性编辑栏,编辑对象的属性。 三、信号函数 选中Combo Box,右键“转... -
WPF 在listview中如何实现Combobox的下拉菜单绑定Demo
2020-05-21 14:30:59WPF 在listview中如何实现Combobox的下拉菜单绑定Demo C# WPF ListView -
WPF 控件样式之ComboBox 下拉菜单
2020-06-30 10:08:16当选项过多时,使用下拉菜单展示并选择内容。 依次为普通ComboBox 、带清除的ComboBox、可编辑的ComboBox、带清除的可编辑ComboBox 使用方式 <Page.Resources> <sysCollection:ArrayList x:Key=... -
easyui combobox 下拉列表添加选择项
2015-10-20 17:25:51我们在使用easyui combobox 创建下拉列表时,需要通过ajax获取从服务端返回的json字符串,并显示在客户端。但除了显示数据库中存在的数据,往往需要为返回的结果增加一个选项,比如“全部”。 对于这个问题尝试... -
vs2008演示ComboBox下拉列表控件的使用实例
2009-02-02 10:39:56vs2008演示演示ComboBox下拉列表控件的使用实例 -
c#: DataGridView单元格添加下拉列表(combobox)
2021-06-20 16:50:37介绍 在DataGridView单元格中显示下拉列表 ...另外新建ComboBox,并设置下拉选项。 添加如下三个函数,代码如下 private void dataGridView1_CurrentCellChanged(object sender, EventArgs e) { -
WPF ComboBox下拉列表绑定
2021-09-17 15:41:311.定义一个变量绑定下拉的值 private bool saveImage = false; /// <summary> /// 是否打开保存图片 /// </summary> public bool SaveImage { get { return saveImage; } set { saveImage = ... -
C# 重写ComboBox实现下拉任意组件的方法
2021-01-01 08:46:25C#种的下拉框ComboBox不支持下拉复选框列表与下拉树形列表等,系统中需要用到的地方使用了第三方组件,现在需要将第三方组件替换掉。 二、设计 基本思路:重写ComboBox,将原生的下拉部分屏蔽,使用... -
c#下拉列表框框combobox
2020-05-15 02:45:58启动: 点击button,获取选择数据: 如何用代码给combobox添加列表选项? 一、 cmb下拉框.Items.Add("c#"); 运行: 二、 cmb下拉框.Items.AddRange(new string[] { "窗体","修炼","手册" }); 三、 string[] strs = ... -
VBCombox实现下拉
2014-03-11 20:05:39可以实现vb的Combox自动下拉,用了别人的代码修改了一下。 -
C#ComboBox下拉框的使用(二)
2021-06-23 10:21:12内容:下拉框的添加,删除,查找功能的实现 /// <summary> /// 下拉框内容添加 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> ... -
QComboBox添加下拉表项 Qt
2020-12-29 17:53:16就是为QComboBox添加下拉表项, addItems() 就是为QComboBox添加下拉表项啊,但是可以一次zhi添加很多个,比如dao QStringList list; list<<""<<“Altemative”<<“Blues”<<“Comedy”<... -
combobox实现下拉框多选
2019-06-25 06:50:17本方法和用checkbox, listbox等控件和事件拼凑出来的不同,本方法是一个集成的独立控件,基本实现了控件的顺滑度,下拉框可悬浮等效果,可以认为是comboBox的升级版,使用方便,仅需引用编译好的DLL,直接在toolBox... -
QML中的combobox动态添加内容
2022-03-07 15:26:14qml动态添加combobox下拉框中的内容 -
MFC 如何给ComboBox下拉框控件添加item,如何添加顺序索引的数据项?
2018-07-25 09:56:25提到了添加item可以用AddString方法,效果如下: 我定义了一个数组: CString strFont[5] = { _T("宋体"),_T("楷体"),_T("仿宋"),_T("黑体"),_T("华文细黑") }... -
C#&数据库 comboBox中的下拉选项的设置
2018-09-19 21:20:19先说固定的,大致如下,combobox3是包含这些下拉菜单的那个组件 comboBox3.Items.Clear();//先清空组件中的选项 comboBox3.Items.Add("荤菜");//这样combox3中的下拉菜单选项就是荤菜,素菜,汤粥,... -
comboBox控件下拉选项中添加图片
2020-02-02 12:12:26comboBox下拉选项中添加图片 1、将需要添加的图片加入到imageList中 2、循环图片清单,加入绘入comboBox中,代码如下: foreach (string key in imageList1.Images.Keys) { comboBox1.Items.Add(key); } ...