精华内容
下载资源
问答
  • 工作表中添加列表框或组合框

    千次阅读 2012-05-04 10:29:40
    添加列表框(表单控件) 如果“开发工具”选项卡未显示,请显示它。 显示“开发工具”选项卡 单击“Office 按钮” ,然后单击“Excel 选项”。 在“常用”类别中的“使用 Excel 时采用的首选项”下,...

    http://office.microsoft.com/zh-cn/excel-help/HP010236681.aspx

    添加列表框(表单控件)

    1. 如果“开发工具”选项卡未显示,请显示它。

    隐藏显示“开发工具”选项卡

    1. 单击“Office 按钮”按钮图像 ,然后单击“Excel 选项”
    1. “常用”类别中的“使用 Excel 时采用的首选项”下,选中“在功能区显示‘开发工具’选项卡”复选框,然后单击“确定”

     注释   功能区是 Microsoft Office Fluent 用户界面的一个组件。

    1. “开发工具”选项卡上的“控件”组中,单击“插入”,然后在“表单控件”下单击“列表框”按钮图像

    “控件”组

    1. 在工作表中单击该列表框的左上角要出现的位置。
    2. “开发工具”选项卡上的“控件”组中,单击“属性”“编辑代码”按钮

     提示   也可以右键单击该控件,然后单击“设置控件格式”

    若要指定控件属性,请执行下列操作:

    1. “数据源区域”框中,输入对某个区域的单元格引用,该区域中包含要在该列表框中显示的值。
    2. “单元格链接”框中,输入包含列表框选定内容的单元格引用。

    链接单元格返回列表框内的选定项目数。区域内的第一个项目将返回值 1,区域内的第二个项目将返回值 2,依此类推。

    在公式中使用此数字以返回数据源区域内的实际项目。

    例如,甜点喜好表单上有一个链接到单元格 C1 的列表框,该列表的数据源区域是 D1:D5,该区域中的项目有“冰淇淋”(D1)、“蛋糕”(D2)、“甜露酒”(D3)、“糖果”(D4) 和“巧克力”(D5)。如果 C1 的值是 3,则基于该列表框中的当前选定内容,在单元格 B1 中输入的以下公式将返回区域 D1:D5 中的值“甜露酒”。

    =INDEX(D1:D5,C1)

    1. “选定类型”下,通过执行下列操作之一指定如何在列表框中选择项目:
      • 若要创建单项选择列表框,请单击“单一”
      • 若要创建多项选择列表框,请单击“复选”
      • 若要创建扩展选择列表框,请单击“扩展”

     注释   如果将选定类型设置为“复选”“扩展”,则在“单元格链接”框中指定的单元格将返回值 0 并且将被忽略。“复选”“扩展”选定类型需要使用 Microsoft Visual Basic for Applications (VBA) 代码。在这些情况下,请考虑使用 ActiveX 列表框控件。

    返回页首 返回页首

    添加列表框(ActiveX 控件)

    1. 如果“开发工具”选项卡未显示,请显示它。

    显示显示“开发工具”选项卡

    1. 单击“Office 按钮”按钮图像 ,然后单击“Excel 选项”
    1. “常用”类别中的“使用 Excel 时采用的首选项”下,选中“在功能区显示‘开发工具’选项卡”复选框,然后单击“确定”

     注释   功能区是 Microsoft Office Fluent 用户界面的一个组件。

    1. “开发工具”选项卡上的“控件”组中,单击“插入”,然后在“ActiveX 控件”下单击“列表框”按钮图像

    “控件”组

    1. 在工作表中单击该列表框的左上角要出现的位置。
    2. 若要编辑 ActiveX 控件,请确保处于设计模式。在“开发工具”选项卡上的“控件”组中,打开“设计模式”按钮图像
    3. 若要指定控件属性,请在“开发工具”选项卡上的“控件”组中单击“属性”“编辑代码”按钮

     提示   也可以右键单击该控件,然后单击“属性”

    “属性”对话框随即出现。若要获取有关每个属性的详细信息,请选择该属性,然后按 F1 以显示 Visual Basic 帮助 (Visual Basic 帮助:要获得 Visual Basic 帮助,可指向“工具”菜单中的“宏”,然后单击“Visual Basic 编辑器”。在“帮助”菜单上,单击“Microsoft Visual Basic 帮助”。)主题。还可以在 Visual Basic 帮助的“搜索”框中键入该属性名称。下一部分总结了可用的属性。

    按功能类别划分的属性摘要

    如果要指定 请使用此属性
    常规: 
    打开工作簿时是否加载控件。(如果是 ActiveX 控件,则忽略。)AutoLoad (Excel)
    控件是否可以接收焦点并响应用户生成的事件。Enabled(表单)
    控件是否可编辑。Locked(表单)
    控件的名称。Name(表单)
    控件附加到其下方单元格的方式(自由浮动、移动但不调整大小,或者移动并调整大小)。Placement (Excel)
    控件是否可打印。PrintObject (Excel)
    控件是可见还是隐藏。Visible(表单)
    文本: 
    字体属性(加粗、倾斜、字号、删除线、下划线和粗细)。BoldItalicSizeStrikeThroughUnderlineWeight(表单)
    输入法编辑器 (IME) 的默认运行时模式。IMEMode(表单)
    控件的大小是否可调整以显示全部或部分文本行。IntegralHeight(表单)
    是否允许选择多个项目。MultiSelect(表单)
    控件中的文本。Text(表单)
    文本在控件中的对齐方式(左对齐、居中或右对齐)。TextAlign(表单)
    数据和绑定: 
    链接至控件值的区域。LinkedCell (Excel)
    控件的内容或状态。Value(表单)
    大小和位置: 
    高度或宽度(以磅为单位)。HeightWidth(表单)
    控件与工作表的左边缘或上边缘之间的距离。LeftTop(表单)
    格式设置: 
    背景色。BackColor(表单)
    边框的颜色。BorderColor(表单)
    边框的类型(无或单线)。BorderStyle(表单)
    前景色。ForeColor(表单)
    控件是否有阴影。Shadow (Excel)
    边框的可视外观(平面、凸起、凹陷、蚀刻或凸块)。SpecialEffect(表单)
    键盘和鼠标: 
    自定义鼠标图标。MouseIcon(表单)
    用户将鼠标放在特定对象上时显示的指针类型(例如标准指针、箭头或 I 型)。MousePointer(表单)
    特定于列表框: 
    多个列的数据源。BoundColumn(表单)
    要显示的列数。ColumnCount(表单)
    作为列标题的单个行。ColumnHeads(表单)
    每列的宽度。ColumnWidths(表单)
    用于填充列表的区域。ListFillRange (Excel)
    列表样式(普通、带有选项按钮或带有复选框)。ListStyle(表单)
    在用户键入时控件搜索其列表的方式(首字母、整个条目或者未指定)MatchEntry(表单)
    当用户选择一行时要存储到“Text”属性中的列。TextColumn(表单)
    出现在列表中的最顶端位置的项目。TopIndex(表单)

     注释 

    • 若要创建启用了多项选择或扩展选择的列表框,请使用“MultiSelect”属性。在这种情况下,“LinkedCell”属性将返回值“#N/A”。必须使用 VBA 代码来处理多项选择。
    • 若要创建具有列标题的两列列表框,请将“ColumnCount”设置为“2”,将“ColumnHeads”设置为“True”、将“ColumnWidths”设置为每列需要的宽度(例如,72pt;72pt),将“ListFillRange”设置为用于填充该列表的区域(例如,B2:C6),将“BoundColumn”设置为“1”或“2”(以指示要保存的列值),并将“LinkedCell”设置为包含选定值的单元格地址。默认情况下,将列标签用作列标题(例如,“列 B”和“列 C”)。若要使用您自己的列标题,在关闭“属性”对话框之前,请将它们(例如,B1 和 C1)放在“ListFillRange”中指定的第一个值的正上方。最后,调整列表框的大小以显示两个列。
    • 若要创建在列表框中显示一个值但将另一个值保存在链接单元格中的列表框,请创建一个两列列表框,然后通过将其中一列的“ColumnWidths”值设置为“0”来隐藏该列。例如,您可以设置一个两列列表框,其中一列包含节假日的名称,第二列包含与节假日相关的日期。若要向用户显示节假日名称,请将第一列指定为“TextColumn”。若要存储节假日的日期,请将第二列指定为“BoundColumn”。若要隐藏节假日的日期,请将第二列的“ColumnWidths”属性设置为“0”。

    返回页首 返回页首

    添加组合框(表单控件)

    1. 如果“开发工具”选项卡未显示,请显示它。

    显示显示“开发工具”选项卡

    1. 单击“Office 按钮”按钮图像 ,然后单击“Excel 选项”
    1. “常用”类别中的“使用 Excel 时采用的首选项”下,选中“在功能区显示‘开发工具’选项卡”复选框,然后单击“确定”

     注释   功能区是 Microsoft Office Fluent 用户界面的一个组件。

    1. “开发工具”选项卡上的“控件”组中,单击“插入”,然后在“表单控件”下单击“组合框”按钮图像

    “控件”组

    1. 在工作表中单击该组合框的左上角要出现的位置。

    在文本框折叠时会显示下拉箭头。

    1. 若要显示文本框,请将中间偏左处的尺寸控点拖到右侧。
    2. “开发工具”选项卡上的“控件”组中,单击“属性”按钮图像

     提示   也可以右键单击该控件,然后单击“设置控件格式”

    若要指定控件属性,请执行下列操作:

    1. “数据源区域”框中,输入对某个区域的单元格引用,该区域中包含要在组合框下拉列表中显示的值。
    2. “单元格链接”框中,输入包含组合框下拉列表中的选定内容的单元格引用。

    链接单元格将返回组合框下拉列表中的选定项目数。区域内的第一个项目将返回值 1,区域内的第二个项目将返回值 2,依此类推。

    在公式中使用此数字以返回数据源区域内的实际项目。例如,甜点喜好表单上有一个链接到单元格 C1 的组合框,该列表的数据源区域是 D1:D5,该区域中的项目有“冰淇淋”(D1)、“蛋糕”(D2)、“甜露酒”(D3)、“糖果”(D4) 和“巧克力”(D5)。如果 C1 的值是 3,则基于该组合框中的当前选定内容,在单元格 B1 中输入的以下公式将返回区域 D1:D5 中的值“甜露酒”。

    =INDEX(D1:D5,C1)

     注释   如果要创建一个让用户能够在文本框内编辑文本的组合框,请考虑使用 ActiveX 组合框控件。

    1. “下拉显示项数”框中,输入要在组合框的下拉列表中显示的项数。如果值:
      • 为 0,则忽略项数,且将项数当作 1。
      • 小于“数据源区域”框中指定的区域中的项数,则显示滚动条。
      • 等于或大于“数据源区域”框中指定的区域中的项数,则不显示滚动条。

    返回页首 返回页首

    添加组合框(ActiveX 控件)

    1. 如果“开发工具”选项卡未显示,请显示它。

    显示显示“开发工具”选项卡

    1. 单击“Office 按钮”按钮图像 ,然后单击“Excel 选项”
    1. “常用”类别中的“使用 Excel 时采用的首选项”下,选中“在功能区显示‘开发工具’选项卡”复选框,然后单击“确定”

     注释   功能区是 Microsoft Office Fluent 用户界面的一个组件。

    1. “开发工具”选项卡上的“控件”组中,单击“插入”,然后在“ActiveX 控件”下单击“组合框”按钮图像

    “控件”组

    1. 在工作表中单击该组合框的左上角要出现的位置。
    2. 若要编辑 ActiveX 控件,请确保处于设计模式。在“开发工具”选项卡上的“控件”组中,打开“设计模式”按钮图像
    3. 若要指定控件属性,请在“开发工具”选项卡上的“控件”组中单击“属性”“编辑代码”按钮

     提示   也可以右键单击该控件,然后单击“属性”

    “属性”对话框随即出现。若要获取有关每个属性的详细信息,请选择该属性,然后按 F1 以显示 Visual Basic 帮助 (Visual Basic 帮助:要获得 Visual Basic 帮助,可指向“工具”菜单中的“宏”,然后单击“Visual Basic 编辑器”。在“帮助”菜单上,单击“Microsoft Visual Basic 帮助”。)主题。还可以在 Visual Basic 帮助的“搜索”框中键入该属性名称。下一部分总结了可用的属性。

    按功能类别划分的属性摘要

    如果要指定 请使用此属性
    常规: 
    打开工作簿时是否加载控件。(如果是 ActiveX 控件,则忽略。)AutoLoad (Excel)
    控件是否可以接收焦点并响应用户生成的事件。Enabled(表单)
    控件是否可编辑。Locked(表单)
    控件的名称。Name(表单)
    控件附加到其下方单元格的方式(自由浮动、移动但不调整大小,或者移动并调整大小)。Placement (Excel)
    控件是否可打印。PrintObject (Excel)
    控件是可见还是隐藏。Visible(表单)
    文本: 
    单词或字符是否是用来扩展选定内容的基本单位。AutoWordSelect(表单)
    字体属性(加粗、倾斜、字号、删除线、下划线和粗细)。BoldItalicSizeStrikeThroughUnderlineWeight(表单)
    当控件没有焦点时所选文本是否仍然突出显示。HideSelection(表单)
    输入法编辑器 (IME) 的默认运行时模式。IMEMode(表单)
    用户可以输入的最大字符数。MaxLength(表单)
    用户是否可以通过单击文本左侧来选择一行文本。SelectionMargin(表单)
    控件中的文本。Text(表单)
    文本在控件中的对齐方式(左对齐、居中或右对齐)。TextAlign(表单)
    数据和绑定: 
    链接至控件值的区域。LinkedCell (Excel)
    控件的内容或状态。Value(表单)
    大小和位置: 
    控件的大小是否可以自动调整以显示所有内容。AutoSize(表单)
    高度或宽度(以磅为单位)。HeightWidth(表单)
    控件与工作表的左边缘或上边缘之间的距离。LeftTop(表单)
    格式设置: 
    背景色。BackColor(表单)
    背景样式(透明或不透明)。BackStyle(表单)
    边框的颜色。BorderColor(表单)
    边框的类型(无或单线)。BorderStyle(表单)
    前景色。ForeColor(表单)
    控件是否有阴影。Shadow (Excel)
    边框的可视外观(平面、凸起、凹陷、蚀刻或凸块)。SpecialEffect(表单)
    键盘和鼠标: 
    在用户输入控件的最大字符数后是否发生自动制表符操作。AutoTab(表单)
    是否启用拖放功能。DragBehavior(表单)
    进入控件时的选择行为(全选或不变)。EnterFieldBehavior(表单)
    自定义鼠标图标。MouseIcon(表单)
    用户将鼠标放在特定对象上时显示的指针类型(例如标准指针、箭头或 I 型)。MousePointer(表单)
    特定于组合框: 
    多个列的数据源。BoundColumn(表单)
    要显示的列数。ColumnCount(表单)
    作为列标题的单个行。ColumnHeads(表单)
    每列的宽度。ColumnWidths(表单)
    在下拉按钮上显示的符号(下箭头、普通、省略号或下划线)。DropButtonStyle(表单)
    用于填充列表的区域。ListFillRange (Excel)
    要在列表中显示的最大行数。ListRows(表单)
    列表样式(普通、带有选项按钮或带有复选框)。ListStyle(表单)
    列表的宽度。ListWidth(表单)
    在用户键入时控件搜索其列表的方式(首字母、整个条目或者未指定)MatchEntry(表单)
    作为文本输入的值是否必须与现有列表中的条目相匹配。MatchRequired(表单)
    何时显示下拉按钮(从不、有焦点时或者始终)。ShowDropButtonWhen(表单)
    用户选择或设置值的方式(下拉组合框或下拉列表)。Style(表单)
    当用户选择一行时要存储到“Text”属性中的列。TextColumn(表单)
    出现在列表中的最顶端位置的项目。TopIndex(表单)

     注释 

    • 若要创建具有列标题的两列组合框,请将“ColumnCount”设置为“2”,将“ColumnHeads”设置为“True”,将“ColumnWidths”设置为每列需要的宽度(例如,72pt;72pt),将“ListFillRange”设置为用于填充该列表的区域(例如,B1:C6),将“BoundColumn”设置为“1”或“2”(以指示要保存的列值),将“TextColumn”设置为要在组合框的文本框部分中显示的数据列(可与“BoundColumn”值相同或不同),并将“LinkedCell”设置为将包含选定值的单元格地址。默认情况下,将列标签用作列标题(例如,“列 B”和“列 C”)。若要使用您自己的列标题,在关闭“属性”对话框之前,请将它们(例如,B1 和 C1)放在“ListFillRange”中指定的第一个值的正上方。最后,调整组合框的大小以显示两个列。
    • 若要创建在组合框中显示一个值但将另一个值保存在链接单元格中的组合框,请创建一个两列组合框,然后通过将其中一列的“ColumnWidths”值设置为“0”来隐藏该列。例如,您可以设置一个两列组合框,其中一列包含节假日的名称,第二列包含与节假日相关的日期。若要向用户显示节假日名称,请将第一列指定为“TextColumn”。若要存储节假日的日期,请将第二列指定为“BoundColumn”。若要隐藏节假日的日期,请将第二列的“ColumnWidths”属性设置为“0”。
    • 若要创建不允许用户输入新值的组合框,请将“Style”设置为“2”。若要创建允许用户输入列表中没有的新值的组合框,请将“Style”设置为“1”(默认值)。在这种情况下,如果要动态更新列表值,必须编写 VBA 代码。

     

    展开全文
  • VB中列表框添加与删除项目

    千次阅读 2019-02-11 16:50:17
  • C# 列表框,实现列表条目的增加,删除,清空等功能,采用图形用户界面!
  • 列表框与组合框

    千次阅读 2005-05-02 13:26:00
    标准的列表框只能允许选中一个条目,选中的条目将以系统颜色COLOR_HIGHLIGHT高亮显示。Windows还提供了多种不同风格的标准列表框,其中包括多选列表框、多列显示的列表框和可以显示图象的拥有者画(Owner-draw)列表...
      列表框是窗口类名为"ListBox"的预定义子窗口,在窗口矩形内包含有一些可以滚动显示的栏状字符串列表。标准的列表框只能允许选中一个条目,选中的条目将以系统颜色COLOR_HIGHLIGHT高亮显示。Windows还提供了多种不同风格的标准列表框,其中包括多选列表框、多列显示的列表框和可以显示图象的拥有者画(Owner-draw)列表框等。另一种与列表框相关的控件是组合框,该控件预定义类名为"COMBOBOX",实际是一个编辑控件同一个彼此相关的列表框控件的组合。用户既可以在组合框的编辑栏上直接输入、编辑文字也可以从下拉列表中显示的可能选择中进行选取。

      MFC的CListBox 类封装了列表框控件,由成员函数Create()完成对列表框的创建,在创建的同时指定了控件的窗口风格。当列表框中的条目被选中或被鼠标双击后将向父窗口发送WM_COMMAND消息。如果列表框采用了LBS_NOTIFY风格,父窗口就可以通过ON_LBN消息映射宏直接将通知消息同消息处理函数建立起映射关系。列表框提供了十余种窗口风格,现将列表框风格及说明列表如下:

    列表框风格 说明
    LBS_STANDARD创建一个具有边界和垂直滚动条、当选择发生变化或条目被双击时能够通知父窗口的标准列表框。所有条目按字母排序。
    LBS_SORT 按字母排序。
    LBS_NOSEL条目可视但不可选。
    LBS_NOTIFY当用户选择或双击一个串时,发出消息通知父窗口。
    LBS_DISABLENOSCROLL在条目不多时依然显示并不起作用的滚动条。
    LBS_MULTIPLESEL允许条目多选。
    LBS_EXTENDEDSEL可用SHIFT和鼠标或指定键组合来选择多个条目。
    LBS_MULTICOLUMN 允许多列显示。
    LBS_OWNERDRAWVARIABLE创建一个拥有者画列表框,条目高度可以不同。
    LBS_OWNERDRAWFIXED创建一个具有相同条目高度的拥有者画列表框。
    LBS_USETABSTOPS允许使用TAB制表符。
    LBS_NOREDRAW 当条目被增删后不自动更新列表显示。
    LBS_HASSTRINGS 记忆了添加到列表中的字串。
    LBS_WANTKEYBOARDINPUT当有键按下时向父窗口发送WM_VKEYTOITEM或WM_CHARTOITEM消息。
    LBS_NOINTEGRALHEIGHT按程序设定尺寸创建列表框。

      缺省的,列表框在每添加或删除一个条目后都会自动重绘,如果在列表框中已经有了几百条甚至上千条条目,将会因为重绘而引起比较严重的闪烁。可以通过使用LBS_NOREDRAW风格来禁止列表框的自动重绘。在需要更新显示时强制重绘列表框窗口即可。如果在创建时未使用LBS_NOREDRAW风格,可以在增删条目前向列表框发送WM_SETREDRAW消息,指定其不重绘,增添完毕后再次发送WM_SETREDRAW消息重新启用自动重绘风格。示例过程如下:

    CListBox m_ctrListBox;
    // 禁止自动重绘
    m_ctrListBox.SendMessage(WM_SETREDRAW, FALSE, 0);
    // 进行条目增删操作
    ……
    // 允许自动重绘
    m_ctrListBox.SendMessage(WM_SETREDRAW, TRUE, 0);

      列表框创建之初是不含任何条目的,通过CListBox成员函数AddString()和InsertString()向列表框增添或插入条目。如果列表框具有LBS_SORT风格,那么新添加字串的位置是不固定的,要根据字串的字母进行排序;如果不具有该风格,新字串将添加到列表框的末尾。

      如果有必要,可以使用SetItemDataPtr()或SetItemData()将一个32位的指针(或一个DWORD的值)同列表框中的一个条目联系起来,并且在设置后可以通过调用GetItemDataPtr()或GetItemData()而获取。这样做的目的是可以将列表框中的条目同外部数据建立联系。例如:可以用这种方式非常方便地将一个包含有地址、电话号码和E-mail地址等信息的数据结构同列举在列表框中的持有人建立起关联。当从列表框中选中某个人时,可以同时得到有关该人的通讯信息。

      当操作列表框时,将会通过WM_COMMAND消息发送通知给父窗口,消息参数lParam的高字节包含了通知码标识符。在MFC应用程序中,列表框的通知消息通过ON_LBN消息映射宏而映射到类成员函数。下表给出了列表框的几个通知消息以及相应的ON_LBN宏。其中,LBN_DBLCLK,LBN_SELCHANGE和LBN_SELCANCEL通知消息只有在列表框使用了LBS_NOTIFY或LBS_STANDARD风格时才会被发出,其他通知消息则无此限制。

    通知码标识符ON_LBN宏含义
    LBN_SETFOCUSON_LBN_SETFOCUS4 列表框接收到输入焦点
    LBN_KILLFOCUSON_LBN_KILLFOCUS5 列表框接失去输入焦点
    LBN_ERRSPACEON_LBN_ERRSPACE-2 列表框存储溢出
    LBN_DBLCLKON_LBN_DBLCLK 2 双击条目
    LBN_SELCHANGE ON_LBN_SELCHANGE 1 改变选择
    LBN_SELCANCELON_LBN_SELCANCEL3 取消选择

      其中,最经常使用的两个通知消息是LBN_DBLCLK和LBN_SELCHANGE。对于不可复选的列表框可以通过GetCurSel()来获取当前双击的是列表框条目的索引值;对于允许多选的列表框则需要用GetCaretIndex()来代替GetCurSel()。下面通过一段示例代码对列表控件的使用做一个直观的演示:

    // 创建并初始化列表框
    // 创建列表框
    m_ctrListBox.Create(WS_VISIBLE | WS_CHILD | WS_BORDER | LBS_STANDARD,CRect(270, 50, 370, 150), this, IDC_LIST1);
    // 添加条目
    CString Item[9] = {"Item1", "Item2", "Item3", "Item4", "Item5", "Item6", "Item7", "Item8", "Item9"};
    for (int i = 0; i < 9; i++)
    m_ctrListBox.AddString(Item[i]);
    // 选中第4个条目
    m_ctrListBox.SetCurSel(3);
    ……
    // 父窗口对通知消息的处理函数的声明(在头文件中)
    //{{AFX_MSG(CSample02View)
    afx_msg void OnLbnDblClk();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
    ……
    // 父窗口对通知消息的映射入口 (在实现文件中)
    BEGIN_MESSAGE_MAP(CSample02View, CView)
    //{{AFX_MSG_MAP(CSample02View)
    ON_LBN_DBLCLK(IDC_LIST1, OnLbnDblClk)
    //}}AFX_MSG_MAP
    // Standard printing commands
    END_MESSAGE_MAP()
    ……
    // 父窗口对LBN_DBLCLK通知消息的处理
    void CSample02View::OnLbnDblClk()
    {
    // 得到当前选中条目的索引
    int Index = m_ctrListBox.GetCurSel();
    // 得到此条目的内容
    char Text[20];
    m_ctrListBox.GetText(Index, Text);
    // 以信息框报告得到的内容
    AfxMessageBox(CString(Text));
    }

      虽然组合框实际是列表框和编辑框的组合,但在使用中的表现使得组合框同其他控件一样当作一个独立的控件去使用。MFC的CComboBox类提供了对组合框的功能支持。在使用Create()函数创建组合框时可以同时指定组合框的风格(参见下表)。

    窗口风格说明
    CBS_AUTOHSCROLL当在行尾输入字符时自动将编辑框中的文字向右滚动。
    CBS_DROPDOWN同CBS_SIMPLE风格类似,只是只有在用户点击下拉图标时才会显示出下拉列表。
    CBS_DROPDOWNLIST同CBS_DROPDOWN类似,只是显示当前选项的编辑框为一静态框所代替。
    CBS_HASSTRINGS创建一个包含了由字串组成的项目的拥有者画组合框。
    CBS_OEMCONVERT将组合框中的ANSI字串转化为OEM字符。
    CBS_OWNERDRAWFIXED由下拉列表框的拥有者负责对内容的绘制;列表框中各项目高度相同。
    CBS_OWNERDRAWVARIABLE由下拉列表框的拥有者负责对内容的绘制;列表框中各项目高度可以不同。
    CBS_SIMPLE 下拉列表始终显示。
    CBS_SORT 自动对下拉列表中的项目进行排序。
    CBS_DISABLENOSCROLL当下拉列表显示内容过少时显示垂直滚动条。
    CBS_NOINTEGRALHEIGHT在创建控件时以指定的大小来精确设定组合框尺寸。

      对组合框进行操作也会向父窗口发送通知消息,处理过程同前面几种控件大同小异,是通过ON_CBN消息映射宏完成对通知消息的映射的。下面就给出这些ON_CBN宏的详细说明:

    ON_CBN宏对应事件
    ON_CBN_CLOSEUP关闭下拉列表。
    ON_CBN_DBLCLK 双击下拉列表中的项目。
    ON_CBN_DROPDOWN下拉显示列表框。
    ON_CBN_EDITCHANGE编辑框中文本内容被改动。
    ON_CBN_EDITUPDATE编辑框内容更新显示。
    ON_CBN_ERRSPACE组合框不能为某个特殊请求分配足够的内存。
    ON_CBN_SELENDCANCEL用户的选择被取消。
    ON_CBN_SELENDOK用户选择了一个项目并且通过回车键或按下鼠标而隐藏组合框的下拉列表。
    ON_CBN_KILLFOCUS组合框失去焦点。
    ON_CBN_SELCHANGE选择发生变化。
    ON_CBN_SETFOCUS组合框获得输入焦点。

      最后给出一段有关组合框的示例代码,从代码实现不难看出组合框控件同前面给出的列表控件在编程实现上的相似性。

    // 组合框的创建
    // 创建列表控件
    m_ctrComboBox.Create(WS_VISIBLE | WS_CHILD | WS_BORDER | CBS_DROPDOWN, CRect(400, 50, 470, 150), this, IDC_COMBOX1);
    // 添加条目
    CString Item[9] = {"Item1", "Item2", "Item3", "Item4", "Item5", "Item6", "Item7", "Item8", "Item9"};
    for (int i = 0; i < 9; i++)
    m_ctrComboBox.AddString(Item[i]);
    // 选中第4个条目
    m_ctrComboBox.SetCurSel(3);
    ……
    // 通知消息响应函数的声明(在头文件中)
    //{{AFX_MSG(CSample02View)
    afx_msg void OnCbnSelChange();
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
    ……
    // 对通知消息的响应处理(在实现文件中)
    BEGIN_MESSAGE_MAP(CSample02View, CView)
    //{{AFX_MSG_MAP(CSample02View)
    ON_CBN_SELCHANGE(IDC_COMBOX1, OnCbnSelChange)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    ……
    void CSample02View::OnCbnSelChange()
    {
     // 得到当前选中条目的索引
     int Index = m_ctrComboBox.GetCurSel();
     // 得到此条目的内容
     char Text[20];
     m_ctrComboBox.GetLBText(Index, Text);
     // 以信息框报告得到的内容
     AfxMessageBox(CString(Text));
    }
    展开全文
  • 用VBA向列表框(ComboBox或ListBox)中填加数据向列表框中填加数据的方法很多,下面根据实例介绍3种最常用到的方法:图1图2如图1所示的下拉列表框(组合框),图2为其数据源,图2所有在工作表表名为:设置表无论哪种...

    用VBA向列表框(ComboBox或ListBox)中填加数据

    向列表框中填加 数据的方法很多,下面根据实例介绍3种最常用到的方法:

    图1

    图2
    如图1所示的下拉列表框(组合框),图2为其数据源,图2所有在 工作表表名为: 设置
    无论哪种方法我们都首先要知道最后这个数据所在的行数。如图2的第4行。
    复制内容到剪贴板
    代码:
        Dim l As Long         '表示行数时,应该习惯设成长整型
        l = Sheets("设置表").Range("A65536").End(xlUp).Row
    上述代码请参见《 VBA得到EXCEL表格中的行数和列数

    方法一:循环Additem
    复制内容到剪贴板
    代码:
    Sub OkExcel01()
        'www.okexcel.com.cn
        Dim l As Long         '表示行数时,应该习惯设成长整型
        Dim i As Long
        Dim ws As Worksheet
       
        Set ws = Worksheets("设置表")
        l = ws.Range("A65536").End(xlUp).Row
        For i = 2 To l
            ComboBox1.AddItem (ws.Cells(i, 1))
        Next
    End Sub
    这种方法常应用在:(1)将数组加到列表中;(2)不连续的区域;(3)从 数据库中读出的数据等等。

    方法二:设置数据源区域
    复制内容到剪贴板
    代码:
    Sub OkExcel02()
        'www.okexcel.com.cn
        Dim l As Long
        Dim ws As Worksheet
       
        Set ws = Worksheets("设置表")
        l = ws.Range("A65536").End(xlUp).Row
        ComboBox1.List = ws.Range("A2:A" & l).Value
    End Sub
    这种方法常应用在连续的区域,如果源区域的数据固定(如民族)可以省算l的步骤。

    方法三:名称 定义法:
    首先定义名称:(菜单:插入/名称/定义)

    图3
    如图3所示,定义名称
    当数据源中的数据有增减变化时执行如下过程:
    复制内容到剪贴板
    代码:
    Sub OkExcel03_1()
        'www.okexcel.com.cn
        Dim l As Long
        Dim ws As Worksheet
        Set ws = Worksheets("设置表")
        l = ws.Range("A65536").End(xlUp).Row
        ThisWorkbook.Names("类别").RefersTo = "=设置表!$A$2:$A$" & l
    End Sub
    填写数据时执行职下过程:
    复制内容到剪贴板
    代码:
    Sub OkExcel03_2()
        'www.okexcel.com.cn
        ComboBox1.List = ThisWorkbook.Names("类别").RefersToRange.Value
    End Sub
    这种方法常应用在连续的区域,并且一个数据源应用于多个列表框,如在不同的窗体中。
    展开全文
  • JavaSwing_2.9: JComboBox(下拉列表框

    万次阅读 多人点赞 2017-07-09 00:11:45
    JComboBox,下拉列表框。JComboBox以下列列表的形式展示多个选项,用户可以从下拉列表中选择一个值。
  • 如何在JComboBox中添加对象,如果直接将对象加入进去,则只会看到该对象的toString()方法输出的内容。如: JPanel panel = new JPanel(); panel.add(new JLable("选项")); JComboBox comboBox = new ...
  • 简单弄了滚动条和鼠标滚轮响应,可以发送消息添加条目,和删除条目。 显示效果就是简陋的一个条目矩形,里面显示条目内容…… 还有一些基本的,比如应该当前有一个条目是焦点,突出显示,并且可以上下键来移动这个...
  • MUI列表条目的点击事件

    千次阅读 2018-03-04 18:56:19
    如下图所示是一个列表,我们想做的就是给这些条目写点击事件,之前百度了一下MUI的条目点击事件,找到的代码都是片段性,不太完整,而且我自己试了一下网上的代码感觉不奏效,也可能是我使用的方法不对吧,回来我...
  • 本项目是MUI列表条目点击事件的示例代码,目的是让大家了解MUI的点击事件该怎么写。
  • 有时从数据库中查询返回的结果关联到...web中可以new一个ListItem,而winform则无此功能。可以在DataTable中增加一个DataRow来实现同样的功能。string cmdString = "SELECT Id,Name FROM Staff";try{ SqlDataBase sdb =
  • 第12章、列表框

    千次阅读 2013-05-23 17:44:00
    第12章、列表框 【知识要点】  (1)列表框ListBox 【问题提出】  第8章我们学习了下拉列表框,特点是... 列表框在WEB项目中也是应用较多的一个控件,我们应该很好掌握它。 常用属性:  SelectionMode
  • 有时需要在输入框中选择多项条目时,比如发邮件选取收件人时,该怎么实现自动匹配输入的内容以及添加个条目呢?如有此疑惑,可下载代码研究方法.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分...
  • Win32字控件-列表框

    千次阅读 2013-09-28 12:25:47
    LBS_DISABLENOSCROLL 当列表框不包含足够的项目移动时,列表框中显示禁用垂直滚动条。如果没有此样式当列表框不包含足够的项目时,滚动条隐藏。 LBS_EXTENDEDSEL 使用shift键和鼠标或特定组合键,用户可以选择多项...
  • 动态添加/删除Spinner列表选项

    千次阅读 2015-12-08 16:30:22
    添加列表项的话用adapter.add(String) 删除列表项的话用adapter.remove(spinner.getSelectedItem().toString()); 原理很简单,直接上代码吧: 核心代码流程: ①定义了list集合并将数组数据写入 ②定义了...
  • Axure RP Pro - 相关问题 - Listbox列表框部件不支持修改选项在Axure RPPro中,Listbox列表框部件可以设置选中项,但是不能调整选项的条目,如果要实现调整选项的效果,就需要借助于动态面板,在动态面板的不同状态...
  • Delphi列表框组件(TListBox)详解

    万次阅读 2014-07-12 13:38:07
    列表组件  该组件能够让编程人员集中地管理某类信息,如事件和图像等。Delphi 7 中包含多种列表组件,如...此组件为一个标准的Windows 列表框组件,它用于显示一系列的列表,用户可以选择、加入、删除或修改其中的
  • 在ComboBox中改变列表框的宽度

    千次阅读 2012-01-09 10:44:17
    我们经常会使用到组合,而组合是是有2种功能的--下拉和列表。...首先得在你的对话框中添加一个的WM_CTLCOLOR的消息句柄,或者使用CComboBox的继承类,而且在其中添加下面的代码: HBrush tvisualco
  • Python的GUI编程(五)Listbox(列表框

    万次阅读 多人点赞 2018-01-16 21:56:12
    Listbox:列表框用于显示项目列表 语法: lb=List(master,option,···) 参数 master:父窗口  option:常用的选项列表,可以有多,用逗号隔开 可以通过for循环Listbox中插入项目列表和索引...
  • PyQt之下拉列表框(QComboBOX)的常用方法和信号 QComboBox是一个集按钮和下拉选项于一体的控件。 一、QComboBox类中的常用方法 addItem(): 添加一个下拉选项 addItems(): 从列表中添加下拉选项 Clear(): 删除下拉...
  • Java界面 SWT基本组件——列表框(List)

    千次阅读 2014-03-10 15:31:27
    本次实验要求设计一个小程序来说明列表框的一些常用方法。 程序的主要功能: 1. 单击 “>” 按钮,将左侧选中的选项转移到右侧; 2. 单击 “ 3. 单击 “>>” 按钮,将左侧所有选项都转移到右侧; 4. 单击 “ 5. 单击...
  • 双击该listbox控件,会自动添加:private void xxxx_SelectedIndexChanged(object sender, EventArgs e),当一个listbox中的多个条目中的任何一个有变化时,都会触发这个事件 ,然后在这个函数中在去判断你需要的...
  • Java列表和组合

    千次阅读 2018-08-15 13:43:02
    程序可以在列表框中加入多文本选择项条目。列表事件的事件源有两种: 是鼠标双击某个选项:双击选项是动作事件,与该事件相关的接口是ActionListener,注册监视器的方法是addActionListener(),接口...
  • <br />ListBox列表框,是OFFICE软件之...   第一种方法:使用RowSource属性 您能将列表框直接与工作表上的一个单元格区域相链接。在该区域中的数据变化将会引发列表框数据产生相应的变化;但在
  • 基于SSM框架实现一个完整的学生管理系统

    千次阅读 多人点赞 2020-10-09 13:12:22
    这几天用SSM + Redis实现了一个较为完整的学生管理系统,感兴趣的同学可以下载来看看,项目注释写得很多,不失为一个学习的好项目。 Github地址:https://github.com/blizzawang/stu_system 由于项目中使用了Redis...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,900
精华内容 13,560
关键字:

向列表框添加一个条目