复选框的下拉列表

合集下载

Excel制作下拉表框的4种方法

Excel制作下拉表框的4种方法

制作下拉表框有两种方法:一是使用数占有效性设置下拉列表框,其制作方法有两种。

二是使用开发工具中的窗体控件制作下拉列表框,其制作方法也有两种。

为了能使介绍了如指掌,这里所有采纳图片加文字说明介绍自己常用的四种制作方法。

考虑到制作一个页面过长,故分为两个页面。

一、使用数占有效性设置简单的下拉列表框假设我们要下表中设置“男 /女”复选其操作程序以下:在 Excel 工作表中,将鼠标放在需设置列表内容的单元格(上表性别下),选择工具栏中的数据 / 数据的有效性,出现以下对话框:按此设置,点确立即可。

鼠标走开此单元格无任何异样显示,如鼠标搁置在已设置列表的单元格上,就会出现一个下拉箭头,以下列图:鼠标对着下拉箭头,就会出现下拉菜单——男女选择男女,鼠标走开单元格,箭头消逝。

采纳向下拖的迅速复制方法,即可将所设置的格式拖到所需的地点,而后再挨次选择即可。

二、使用数占有效性设置调取数据库式数据的下拉列表框原用文字介绍制作下拉表框的方法:成立下拉列表框1 、视图 / 工具栏 / 窗体,选中组合框,鼠标变成十字形;2、在工作表上点击,出现组合框;3、右击复选框,点设置控件格式,弹出对话框;4、点控制选项卡,设置【数据源地区】为$A$ 4:$ A$ 10,5、设置单元格链接为“$ G$4”(下拉框地点),也能够鼠标点击选择此单元格;6、确立;7、点击下拉框, G4单元格即可显示相应的编号。

定制控制1、复制第四行数据字段到A122、在 A13单元格中输入 "=INDIRECT(ADDRESS(INDIRECT("G4")+4,COLUMN(A5)))"3、在 B13单元格中输入 "=INDIRECT(ADDRESS(INDIRECT("G4")+4,COLUMN(B5)))"4、采纳复制公式的方法将1月的公式复制到 4月;5、选择下拉列表框中的名单,即可显示相应数据。

HTML下拉框、文本框、复选框

HTML下拉框、文本框、复选框

<fieldset><legend>区域 1</legend><p class="sidebtn"></p><div id="isOpened" style="display:none"><table><tr><td align="center"><span>叠加字符:</span></td><td colspan="3" align="left"><input id="s1_text1" type="text" size="52"/></td><td align="center"><span>&nbsp;&nbsp;&nbsp;字体大小:</span></td><td align="left"><input id="s1_text1_size" type="text" size="1"/></td></tr><tr><td align="center"><span>区域宽度:</span></td><td align="left"><input id="s1_text1_width" type="text"/></td><td align="center"><span>&nbsp;&nbsp;&nbsp;&nbsp;区域高度:</span></td><td align="left"><input id="s1_text1_high" type="text" size="8"/></td><td><span>&nbsp;&nbsp;&nbsp;粗&nbsp;&nbsp;&nbsp;&nbsp;体:</span></td><td><select id="s1_text1_bold"><option value="0" selected="">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option></select></td></tr><tr><td><span>显示位置:</span></td><td align="center"><span>X</span><input id="s1_text1_startx" type="text" size="3"/><span>Y</span><input id="s1_text1_starty" type="text" size="3"/></td><td><span>&nbsp;&nbsp;&nbsp;&nbsp;旋转方向:</span></td><td><select id="s1_text1_rotate"><option value="0" selected="">0</option><option value="90">90</option><option value="180">180</option><option value="270">270</option></select></td><td><span>&nbsp;&nbsp;&nbsp;斜&nbsp;&nbsp;&nbsp;&nbsp;体:</span></td> <td><select id="s1_text1_italic"><option value="0" selected="">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option></select></td></tr><tr><td><span>显示方式:</span></td><td><select id="s1_text1_type"><option value="0" selected="">字符</option><option value="1">时间</option></select></td><td><span>&nbsp;&nbsp;&nbsp;&nbsp;颜&nbsp;&nbsp;&nbsp;色:</span></td> <td><select id="s1_text1_color"><option selected="" value="0">Black</option><option value="1">Red</option><option value="2">Blue</option><option value="3">Green</option><option value="4">Yellow</option><option value="5">Magenta</option><option value="6">Cyan</option><option value="7">White</option></select></td><td><span>&nbsp;&nbsp;&nbsp;边框宽度:</span></td><td><select id="s1_text1_outline"><option value="0" selected="">0</option><option value="1">1</option><option value="2">2</option><option value="3">3</option></select></td></tr><tr></tr></table><input type="button" id="stream1" value="保存" onclick = "Judge1()"/> <input type="button" id="clean" value="清除" onclick = "clean1()"/> </div></fieldset>。

word表格怎么制作下拉列表可以选择

word表格怎么制作下拉列表可以选择

word表格怎么制作下拉列表可以选择我们使用word中的表格时,有些内容要选填的,这时候就需要用到下拉列表了。

以下是店铺为您带来的关于在Word表格中添加下拉列表,希望对您有所帮助。

在Word表格中添加下拉列表例如制作一份明细表,在这个表格中,部门、职称、学历和级别等几项内容是需要重复输入的,我们利用Word提供的下拉型窗体域即可轻松实现表格内容的选择录入(如图1)。

具体设置步骤如下:(1)首先在Word中根据需要设计好表格,将固定不变的内容输入到表格中。

(2)将鼠标移到指定位置(例如“职称”下面的单元格),单击“视图→工具栏→窗体”命令,弹出“窗体”工具栏,单击“下拉型窗体域”按钮。

小提示:单元格中插入窗体域后,会显示出灰色底纹,在按下“窗体域底纹”按钮时会显示阴影。

该窗体域底纹只在屏幕上显示,用于提醒用户该域的具体位置,这些效果并不会被打印出来。

(3)双击单元格中的窗体域底纹,弹出“下拉型窗体域选项”对话框。

在“下拉项”文本框内输入需要添加的第一个列表项,并单击“添加”按钮进行添加。

依法输入其余列表项,待所有列表项添加完毕后,可以通过“↑、↓”方向按钮改变列表项的排列顺序。

(4)勾选“启用下拉列表”复选框(如图2),单击“确定”按钮,完成一个单元格的下拉型窗体域的设置。

小技巧:可将其余使用同样窗体域的单元格全部选中,然后通过复制、粘贴的方法一次性插入。

(5)在所有下拉型窗体域完成插入之后,单击“窗体”工具栏上的锁状“保护窗体”按钮(这样除了含有窗体域的单元格外,表格的其它地方都无法进行修改),在需要录入同一内容的任一窗体域单元格上单击鼠标,单击其右侧出现的下拉三角图标,从弹出下拉列表中选择需要录入的内容。

全部选择好后,再次单击“保护窗体”按钮解除锁定。

EXCEL中控件工具箱使用

EXCEL中控件工具箱使用

EXCEL中控件工具箱使用Excel中控件工具箱是一种非常实用的功能,可以帮助用户更方便地在电子表格中插入各种交互式控件,如按钮、复选框、下拉列表等。

下面将详细介绍Excel中控件工具箱的使用。

首先,我们需要打开控件工具箱。

在Excel的菜单栏中选择“开发工具”选项,然后点击“插入”按钮下的“控件”工具箱图标,就可以打开控件工具箱。

在控件工具箱中,可以看到有许多不同的控件可供选择。

常用的控件包括按钮、复选框、单选按钮、下拉列表、文本框等。

选择相应的控件后,可以直接在电子表格中插入并调整其大小和位置。

复选框控件可以用于创建选择框。

它们可以被选中或取消选中,所以非常适合用于记录是否选择一些选项的状态。

通过双击复选框进入其属性窗口,可以自定义复选框的选中和取消时的操作。

单选按钮控件常用于创建选择组。

可以将多个单选按钮放置在一起,并且它们只能选择一个。

通过双击单选按钮进入其属性窗口,可以设置选项的名称、值等。

下拉列表控件可以帮助用户从预定义的列表中选择一个值。

双击下拉列表控件进入其属性窗口,在“值”选项卡中输入预定义的选项,并在“输入范围”选项卡中选择需要填充数据的单元格区域。

文本框控件用于在表格中显示文本内容。

可以在文本框中输入任何文本,也可以在属性窗口中设置文本框的样式、大小和位置。

控件工具箱还包括其他一些控件,如滚动条、组合框、图像等,可以根据需求进行选择和使用。

需要注意的是,控件工具箱中的控件并不是实际的单元格,所以它们的值不能直接参与计算。

如果需要基于控件的值进行计算,可以使用VBA 编写宏代码来实现。

总结来说,Excel中控件工具箱提供了丰富的交互式控件,可以帮助用户更方便地创建具有交互功能的电子表格。

通过选择合适的控件,并对其进行相应的属性设置,可以实现按键操作、数据选择等功能,极大地提高了工作效率。

同时,结合VBA编程,还可以进一步扩展和定制控件的功能。

使用控件工具箱需要一些基本的操作技巧和一定的编程知识,但是掌握这些技能后,将能够更加灵活和高效地使用Excel。

VB常用控件的属性及功能

VB常用控件的属性及功能

VB常用控件的属性及功能Visual Basic (VB)是一个常用的编程语言,用于开发Windows应用程序。

在VB中,有许多常用的控件,每个控件都有一些常见的属性和功能。

下面是一些常用控件的属性和功能的概览:2. TextBox(文本框)控件:- Text属性:设置或获取文本框的文本内容。

- Multiline属性:设置或获取文本框是否为多行文本框。

- PasswordChar属性:设置或获取用于掩盖密码的字符。

- ReadOnly属性:设置或获取文本框是否为只读。

- KeyPress事件:在用户按下键盘键时触发的事件。

- TextChanged事件:当文本框的文本内容改变时触发的事件。

3. Button(按钮)控件:- Text属性:设置或获取按钮显示的文本。

- BackColor属性:设置或获取按钮的背景色。

- Enabled属性:设置或获取按钮是否启用。

- Click事件:在用户单击按钮时触发的事件。

- MouseHover事件:当鼠标悬停在按钮上方时触发的事件。

- Items属性:获取或添加组合框中的列表项。

- SelectedIndex属性:获取或设置组合框中选定项的索引。

- DropDownStyle属性:设置或获取组合框的下拉列表样式。

- SelectedIndexChanged事件:当组合框的选中项改变时触发的事件。

- DropDown事件:当组合框展开下拉列表时触发的事件。

5. CheckBox(复选框)控件:- Checked属性:获取或设置复选框的选中状态。

- Text属性:设置或获取复选框显示的文本。

- CheckedChanged事件:当复选框的选中状态改变时触发的事件。

6. RadioButton(单选按钮)控件:- Checked属性:获取或设置单选按钮的选中状态。

- GroupName属性:指定单选按钮所属的组名。

- AutoCheck属性:指定单选按钮是否自动变为选中状态。

PyQt5基本控件使用详解:单选按钮、复选框、下拉框

PyQt5基本控件使用详解:单选按钮、复选框、下拉框

PyQt5基本控件使⽤详解:单选按钮、复选框、下拉框本⽂主要介绍PyQt5界⾯最基本使⽤的单选按钮、复选框、下拉框三种控件的使⽤⽅法进⾏介绍。

1、RadioButton单选按钮/CheckBox复选框。

需要知道如何判断单选按钮是否被选中。

2、ComboBox下拉框。

需要知道如何对下拉框中的取值进⾏设置以及代码实现中如何获取⽤户选中的值。

带着这些问题下⾯开始介绍这 RadioButton单选按钮、CheckBox复选框、 ComboBox下拉框三种基本控件的使⽤⽅法QRadioButton单选按钮单选按钮为⽤户提供多选⼀的选择,是⼀种开关按钮。

QRadioButton单选按钮是否选择状态通过isChecked()⽅法判断。

isChecked()⽅法返回值True表⽰选中,False表⽰未选中。

RadioButton⽰例完整代码如下:# -*- coding: utf-8 -*-import sysfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox, QRadioButtonclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(309, 126)self.radioButton = QtWidgets.QRadioButton(Form)self.radioButton.setGeometry(QtCore.QRect(70, 40, 89, 16))self.radioButton.setObjectName("radioButton")self.okButton = QtWidgets.QPushButton(Form)self.okButton.setGeometry(QtCore.QRect(70, 70, 75, 23))self.okButton.setObjectName("okButton")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "RadioButton单选按钮例⼦"))self.radioButton.setText(_translate("Form", "单选按钮"))self.okButton.setText(_translate("Form", "确定"))class MyMainForm(QMainWindow, Ui_Form):def __init__(self, parent=None):super(MyMainForm, self).__init__(parent)self.setupUi(self)self.okButton.clicked.connect(self.checkRadioButton)def checkRadioButton(self):if self.radioButton.isChecked():rmation(self,"消息框标题","我RadioButton按钮被选中啦!",QMessageBox.Yes | QMessageBox.No)if __name__ == "__main__":app = QApplication(sys.argv)myWin = MyMainForm()myWin.show()sys.exit(app.exec_())运⾏结果如下:关键代码介绍:self.radioButton.isChecked() --> ⽤于判断RadioButton控件是否被选中。

visio复选框二级下拉组合框

visio复选框二级下拉组合框

visio复选框二级下拉组合框
Visio是一种流程图和绘图软件,用于创建各种类型的图表和图形。

在Visio中,复选框和下拉组合框是常用的控件,用于收集用户输入或进行选项选择。

复选框是一种图形控件,通常用于表示二进制选择。

它由一个方框和一个标签组成。

当复选框被选中时,方框内会显示一个勾选标记,表示该选项被选择了。

用户可以通过点击复选框来切换其选中状态。

二级下拉组合框是一种组合控件,通常用于提供层次结构选项的选择。

它由一个文本框和一个下拉箭头按钮组成。

点击下拉箭头按钮会显示一个下拉列表,包含一级选项。

选择一级选项后,二级下拉组合框会动态展示与一级选项相关的二级选项。

用户可以通过点击二级选项来进行最终的选择。

在Visio中,可以将复选框和二级下拉组合框添加到绘图中的任何位置。

通过使用Visio的工具栏和属性窗口,可以定义每个复选框和二级下拉组合框的属性,如名称、大小、默认状态以及选项列表等。

总结起来,visio复选框二级下拉组合框是Visio软件中常用的两种控件,用于收集用户选择和提供层次结构选项的选择。

复选框用于表示二进制选择,而二级下拉组合框用于提供层次结构选项的选择。

在Visio中,可以通过工具栏和属性窗口设置这些控件的属性。

HTML下拉框、文本框、复选框

HTML下拉框、文本框、复选框

您好,我的回答不知是否满意?QQ,1250175746在HTML中,下拉列表,就是下拦选择框,select文本框就是textarea复选框就是checkbox不单单是这些表单元素,凡是表单元素都在form中<form name=”frm” action=”reg.php” method=”post”>下拉列表:<select name=”jiguan”><option value=”shan”>山东</option><!—下面就是默认选择项selected--><option value=”gauan” selected=”selected”>广东</option><option value=”three”>东北三省</option></selecta>复选项:请选择您喜欢的项目:<br/><input type=”checkbox” name=”裸泳” />裸泳<br/><input type=”checkbox” name=”肚皮舞蹈” checked=”checked” />肚皮舞蹈<br/><input type=”checkbox” name=”泡霉菌” />泡霉霉<br/>个人评语:<br/><textarea name=”self” cols=”50” rows=”5”>这些都是原创</textarea></form>Please Remmber:每一个表单元素都有一个名称和值,都是必须的,这是HTML与服务器交流的唯一通道。

value,name.。

窗体中不同控件的作用

窗体中不同控件的作用

窗体中不同控件的作用窗体中不同控件的作用在现代计算机界面设计中,窗体是一个常见的界面元素,通过窗体可以很好地组织和管理各种控件。

控件就是窗体中的各种功能模块,可以包括按钮、文本框、复选框、下拉菜单等等。

不同的控件有不同的作用和功能,下面将介绍几种常见的窗体控件及其作用。

1.按钮(Button)按钮是窗体中最常见的控件之一,用于触发某种操作或执行特定的功能。

按钮通常显示为一个带有文本或图标的可点击的矩形区域,用户点击按钮后,就会触发与之相关的事件或功能。

比如,我们经常见到的“确认”按钮、”取消“按钮等。

2.文本框(TextBox)文本框是用于接受用户输入或显示文本内容的控件。

用户可以在文本框中输入文字,也可以通过程序动态地改变文本框中的内容。

文本框可以用于输入用户名、密码、搜索关键字等。

在文本框中还可以进行文字的选择、复制、剪切和粘贴等操作。

3.复选框(CheckBox)复选框通常用于表示二进制的多选状态,可以允许用户在多个选项之间进行选择。

复选框显示为一个方框,用户可以选择或取消选择其中的选项。

复选框常用于设置软件的各种选项、筛选多个条件等。

4.单选框(RadioButton)单选框与复选框类似,但是单选框只允许用户在多个选项中选择一个。

单选框通常以圆点或圆圈的形式展示,用户点击其中一个单选框时,其他单选框就会自动取消选择。

单选框常用于需要用户在多个互斥选项中进行选择的场景。

5.下拉菜单(ComboBox)下拉菜单是一个组合框,通过点击下拉箭头展开一个菜单,用户可以从菜单中选择一个或多个选项。

下拉菜单通常用于提供一系列选项供用户选择,比如选择性别、选择日期等。

6.列表框(ListBox)列表框用于在窗体中展示一系列选项或数据,可以选择一个或多个选项。

用户可以通过滚动列表框来查看更多的选项,也可以通过点击其中一个选项来进行选择。

列表框常用于展示文件列表、联系人列表等。

通过使用这些不同的窗体控件,我们可以创建出生动、直观的界面,为用户提供良好的交互体验。

表单控件的使用

表单控件的使用

单选框控件的属性设置
name
用于标识单选框的名称,在提交表单时使用。
disabled
禁用单选框,用户无法选择该选项。
value
单选框的唯一标识符,当用户选择该选项并 提交表单时,该值会被发送到服务器。
checked
设置单选框为默认选中状态。
单选框控件的使用场景
调查问卷
在调查问卷中,可以使用 单选框让用户在一组选项 中选择一个答案。
表单控件的分类
总结词
表单控件可以根据其用途和功能进行分类。
详细描述
根据用途和功能,表单控件可以分为以下几类:输入框、选择器、开关、滑块、 上传控件等。每种类型的控件都有其特定的使用场景和功能特点,以满足用户的 不同需求。
表单控件的发展历程
总结词
表单控件的发展历程可以追溯到早期的Web开发。
详细描述
在早期的Web开发中,表单控件相对简单,主要用于简单的数据提交。随着Web技术的不断发展,表单控件的 功能和外观也日益丰富和多样化,支持更多的交互和定制化需求。如今,表单控件已经成为Web界面设计中不可 或缺的一部分,为提升用户体验和实现用户交互提供了强大的支持。
02
文本框控件
文本框控件的概述
文本框控件是一种常见的表单控件,用于获取用户输入的文本信息。 它通常用于表单中需要用户输入文本的场景,如填写姓名、地址、电话号码等。
复选框常用于多选调查问卷、表 单提交等场景,方便用户快速选
择多个选项。
复选框控件的属性设置
name
复选框的名称,用于标识该复选框的 唯一性。
value
复选框的值,当用户选中该复选框时, 该值会被提交给服务器。
disabled
是否禁用该复选框,禁用后的复选框 无法进行选择操作。

如何用VBA实现单元格下拉框复选

如何用VBA实现单元格下拉框复选

如何用VBA实现单元格下拉框复选要使用VBA实现单元格下拉框复选,需要以下步骤:1. 打开Excel并进入开发者选项卡。

如果您没有开发者选项卡,请按照以下步骤启用它:单击“文件”,然后选择“选项”。

在“Excel选项”对话框中,选择“自定义功能区”,然后在“主选项卡”下方的“主功能区”列表中选中“开发人员”复选框。

单击“确定”以保存更改。

2. 单击开发者选项卡上的“Visual Basic”按钮,以打开Visual Basic Editor(VBE)。

3.在VBE中,选择“插入”菜单,然后选择“用户窗体”以插入一个用户窗体。

4.在用户窗体上,选择“工具箱”工具栏上的“组合框”工具。

然后,在用户窗体上绘制一个组合框。

5.右键单击组合框,并选择“属性”以打开属性窗口。

6. 在属性窗口中,找到“ListStyle”属性,并将其设置为“1 - 下拉列表框”。

这将使组合框显示为下拉列表框。

7. 在属性窗口中,找到“MultiSelect”属性,并将其设置为“2 -扩展模式”。

这将启用组合框的多选功能。

8.关闭属性窗口。

11. 在“Initialize”事件过程中,添加以下代码行:```vbaPrivate Sub UserForm_InitializeEnd Sub```上面的代码将为组合框添加一些选项。

您可以根据需要为组合框添加或删除选项。

15. 在“Close”事件过程中,添加以下代码行:```vbaPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)If CloseMode = vbFormControlMenu Then Cancel = TrueEnd Sub```上述代码将防止用户通过点击窗体的关闭按钮来关闭窗体。

17.在工作表中,选择一个单元格,然后打开“数据验证”对话框。

在“设置”选项卡上,选择“列表”作为“允许”选项。

Excel中制作多级下拉菜单方法

Excel中制作多级下拉菜单方法

Excel中制作多级下拉菜单方法多级选择录入在许多信息系统的单据录入界面中,都有多极选择的功能,即先选择录入某大项,然后选择录入属于此大项的小项。

这是一项非常实用的功能,能够有效避免串项和项目混乱,在EXCEL中,利用数据有效性能够很容易地实现单级的选择录入,如果配合名称和公式,也能够实现两级和两级以上的选择性录入效果。

在如图所示的工作表"城市列表"中,A列~G列保存了一份中国行政区域资料,记录了部分省份的城市清单。

现在希望自爱"多级选择"工作表中实现对省份和城市的选择性录入效果,要求可以先选择录入省份,然后选择录入该省份所有城市。

第一步:按<Ctrl+F3>组合键,在"定义名称"对话框中,添加"City"和"Province"两个名称,分别对应的引用位置"=城市列表!$A$2"和"=城市列表!$A$1:$G$1",如图所示。

第二步:单击工作表标签以切换到"多级选择"工作表。

第三步:单击A2并拖动光标A11以选定区域A2:A11。

第四步:单击菜单"数据"-"有效性",在"数据有效性"对话框的"设置"选项卡中,在"允许"下拉列表框中选择"序列"项。

第五步:在"来源"框中输入=Provinve。

第六步:勾选"忽略空值"复选框和"提供下拉箭头"复选框,单击"确定"按钮,关闭"数据有效性"对话框。

第七步:单击B2并拖动光标到B11以选定区域B2:B11。

第八步:单击菜单"数据"-"有效性",在"数据有效性"对话框的"设置"选项卡中,在"允许"下拉列表框中选择"序列"项。

如何插入复选框和下拉列表

如何插入复选框和下拉列表

如何插入复选框和下拉列表插入复选框和下拉列表是在很多文档和表单中常见的需求。

它们可以为用户提供更多的选择和操作方式,使得文档和表单更加灵活和易于使用。

本文将介绍如何插入复选框和下拉列表,并提供相应的步骤和示例。

一、插入复选框复选框是一种方便用户进行多项选择的控件。

在文档中插入复选框可以用于进行任务的选择、项目的勾选等操作。

插入复选框的步骤如下:1. 打开文档,并定位到需要插入复选框的位置。

2. 在菜单栏中找到“插入”选项,并点击。

3. 在插入选项中,选择“复选框”控件。

4. 将鼠标放置在需要插入复选框的位置上,并按下鼠标左键拖动,确定复选框的大小。

5. 释放鼠标左键后,会在文档中插入一个默认样式的复选框。

6. 可以通过选中复选框,进行右键点击,选择格式设置等选项,对复选框进行样式和属性的调整。

示例:在一个任务列表中,我们可以使用复选框来标记任务的完成情况。

在每个任务前插入一个复选框,用户可以通过勾选和取消勾选来标记任务的进行状态。

二、插入下拉列表下拉列表是一种用于提供多个选项供用户选择的控件。

在文档和表单中插入下拉列表可以用于选择年龄段、地区、性别等信息。

插入下拉列表的步骤如下:1. 打开文档,并定位到需要插入下拉列表的位置。

2. 在菜单栏中找到“插入”选项,并点击。

3. 在插入选项中,选择“下拉列表”控件。

4. 将鼠标放置在需要插入下拉列表的位置上,并按下鼠标左键拖动,确定下拉列表的大小。

5. 释放鼠标左键后,会在文档中插入一个默认样式的下拉列表。

6. 可以通过选中下拉列表,进行右键点击,选择格式设置等选项,对下拉列表进行选项的编辑和调整。

示例:在一个问卷调查表中,我们可以使用下拉列表来询问受访者的年龄段。

通过插入下拉列表,受访者可以从选项中选择适合自己的年龄段,方便统计和分析数据。

总结:通过插入复选框和下拉列表,我们可以为文档和表单增加更多的选项和交互方式,使其更加灵活和易于使用。

通过上述步骤和示例,您可以轻松地在文档中插入复选框和下拉列表,并根据实际需求进行样式和属性的调整。

下拉框用法

下拉框用法

下拉框用法
下拉框(Dropdown)是一种常见的用户界面控件,常用于页面中
的表单或设置选项中。

下拉框通常由一个可展开或下拉的列表以及一
个显示选项文本的文本框组成。

下拉框的用法是通过点击或选择下拉按钮,将下拉框展开,并选
择其中一个选项。

选项通常以列表的形式在下拉框中呈现,可以通过
鼠标滚轮或上下箭头来浏览选项。

在下拉框中选择一个选项后,该选
项的文本将显示在文本框中。

下拉框的主要作用是提供一种方便的选择方式,减少用户的输入
工作。

它可以用来选择一个或多个选项,例如选择国家、日期、颜色、性别等,也可以用来进行筛选、搜索或排序等操作。

此外,下拉框还可以通过编程来动态更新选项列表,使其根据特
定条件自动变化。

它还可以与其他UI控件进行交互,例如联动下拉框,当选择一个选项时,另一个下拉框的选项会相应地更新。

在拓展方面,下拉框还可以与搜索功能结合,使用户能够快速查
找并选择特定的选项。

它还可以与键盘操作结合,例如通过按字母键
来快速定位和选择选项。

下拉框还可以自定义样式和主题,以适应不同的界面设计需求。

总之,下拉框是一种常用的用户界面控件,它通过展示可选择的选项列表,为用户提供了一种方便、快捷的选择方式,可以应用于各种表单、设置和筛选等功能。

excel获取控件多选内容的方法

excel获取控件多选内容的方法

excel获取控件多选内容的方法Excel提供了多种方法来获取控件多选内容。

下面将详细介绍这些方法,并且按照条理清晰的顺序进行说明。

方法一:使用复选框控件1.在Excel工作表上插入复选框控件。

选择"开发工具"选项卡,然后在"控件"组中选择"复选框"控件。

鼠标拖动选定复选框的位置和大小。

2.右键单击复选框,选择"属性"。

在属性窗口中,找到"值"选项,并为复选框设置一个唯一的值。

这个值将在VBA代码中用来判断复选框是否被选中。

3.创建一个事件处理程序来获取复选框的选中状态。

在控件所在的工作表的VBA编辑器中,选择"复选框"来定义事件。

然后,输入以下代码:```Private Sub CheckBox1_Click()If CheckBox1.Value = True Then'复选框被选中'在这里编写处理选中状态的代码Else'复选框未被选中'在这里编写处理未选中状态的代码End IfEnd Sub```4.在事件处理程序中,根据复选框的选中状态执行相应的操作。

例如,可以使用`MsgBox`函数来显示消息框,或者将选中的值写入其他单元格。

方法二:使用下拉列表控件1.在Excel工作表上插入下拉列表控件。

选择"开发工具"选项卡,然后在"控件"组中选择"下拉列表框"控件。

鼠标拖动选定下拉列表的位置和大小。

2.右键单击下拉列表,选择"属性"。

在属性窗口中,找到"下拉值"选项,并在"列表项"框中输入所有可选项的值,每个值用逗号分隔。

3.创建一个事件处理程序来获取下拉列表的选中内容。

在控件所在的工作表的VBA编辑器中,选择"下拉列表框"来定义事件。

复选框有两种状态,分别为开(on)

复选框有两种状态,分别为开(on)
add(mycheckbox); 2、构造方法 Checkbox类有3个构造函数。 (1)Checkbox ();创建无标签的复选框。 (2)Checkbox (String s);创建标签内容为s的复选框。 (3)Checkbox (String s,boolean b);创建标签内容为s的复选框,同时指定 复选框的状态。
软件编程基础
组件
chb = new CheckboxGroup (); //单选按钮组 chb4 = new Checkbox("语文",chb,true);//选中 chb5 = new Checkbox("数学",chb,false);//未选中 chb6 = new Checkbox("英语",chb,false);//未选中 add(chb1); add(chb2);add(chb3); add(chb4);add(chb5);add(chb6); mylist = new List(2,true);//列表框允许多选,显示两行列表 mylist.add("语文"); mylist.add("数学"); mylist.add("英语");//选中 ch = new Choice(); ch.addItem("语文"); ch.addItem("数学"); ch.addItem("英语"); add(mylist); add(ch); add(lab1); add(bon1); add(txt1); add(txt2);// 将标签组件放置到容器port java.awt.*; import java.applet.Applet; public class Zuj extends Applet { public Label lab1; //声明标签lab1 public Button bon1; //声明按钮bon1 public TextField txt1;//声明文本框 public TextArea txt2; //声明文本域 public Checkbox chb1,chb2,chb3,chb4,chb5,chb6; public CheckboxGroup chb; public List mylist; public Choice ch; public void init() { lab1 = new Label("标签1");//创建lab1

设置excel单位格下拉菜单的3种方法[教学]

设置excel单位格下拉菜单的3种方法[教学]

一、直接输入:1.选择要设置的单元格,譬如A1单元格;2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入数据,譬如“1,2,3,4,5,6,7,8,9”(不包括双引号,分割符号“,”必须为半角模式)→按“确定”就OK 了,再次选择该A1单元格,就出现了下拉菜单。

二、引用同一工作表内的数据:,,,,,如果同一工作表的某列就是下拉菜单想要的数据,譬如引用工作表Sheet1的B2:B5,B2:B5分别有以下数据:1、2、3、4,操作如下:1.选择要设置的单元格,譬如A1单元格;2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入数据“=$B$2:$B$5”,也可以按右边带红色箭头的直接选择B2:B5区域→按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。

三、引用不同工作表内的数据(必须用到定义名称):如果不同工作表的某列就是下拉菜单想要的数据,譬如工作表Sheet1的A1单元格要引用工作表Sheet2的B2:B5区域,工作表Sheet2的B2:B5分别有以下数据:1、2、3、4,操作如下:1.定义名称:菜单栏→“插入”→“名称”→“定义”→弹出“定义名称”窗口,在“在当前工作薄中的名称”下面输入“DW”(可以自己随便明明)→“引用位置”下面输入“=Sheet2!$B$2:$B$5”,也可以按右边带红色箭头的直接选择B2:B5区域→按“添加”后再按“确定”完成第一步。

2.选择菜单栏的“数据”→“有效性”→出现“数据有效性”弹出窗口;3.在“设置”选项中→“有效性条件”→“允许”中选择“序列”→右边的“忽略空值”和“提供下拉菜单”全部打勾→在“来源”下面输入“=DW”,“DW”就是刚刚定义好的名称,按“确定”就OK了,再次选择该A1单元格,就出现了下拉菜单。

excel中复合框的用法

excel中复合框的用法

excel中复合框的用法
在Excel中,复合框通常用于创建交互式的表单或报表,以便用户能够选择或输入数据。

复合框可以包括复选框、单选按钮、下拉列表框等,以下是关于复合框的用法:
1. 复选框,复选框允许用户从多个选项中选择一个或多个。

在Excel中,你可以通过“开发人员”选项卡中的“插入”功能向工作表添加复选框。

一旦插入了复选框,你可以通过VBA代码或链接到单元格来控制其行为。

2. 单选按钮,单选按钮类似于复选框,但用户只能选择其中的一个选项。

你可以通过插入单选按钮来创建单选按钮组,并使用VBA代码或链接到单元格来控制其行为。

3. 下拉列表框,下拉列表框允许用户从预定义的选项列表中进行选择。

你可以通过数据验证功能来创建下拉列表框,也可以使用ActiveX控件插入更灵活的下拉列表框。

4. 复合框的数据验证,在Excel中,你可以使用数据验证功能来限制用户输入的范围,例如数字、日期、文本等。

这可以帮助确
保用户输入的数据符合预期,并提高数据的准确性和一致性。

5. 控制复合框的行为,你可以使用VBA代码来控制复合框的行为,例如根据用户的选择显示或隐藏特定的单元格、执行特定的计算或操作等。

总的来说,复合框在Excel中可以帮助你创建交互式的表单或报表,使用户能够方便地输入或选择数据,并通过VBA代码来控制其行为,从而实现更复杂的功能和交互。

希望这些信息能够帮助你更好地理解和使用Excel中的复合框功能。

表格筛选样式

表格筛选样式

表格筛选样式
表格筛选样式主要包括以下几种:
1. 下拉列表筛选:通过在表格中添加下拉列表的方式进行筛选,可以方便地选择需要筛选的内容。

这种样式适用于筛选较少的数据,比较直观。

2. 标签筛选:将筛选条件通过标签的形式添加到表格中,用户可以直接点击标签进行筛选。

这种样式适用于筛选数据较多的情况,比如电商网站的商品列表。

3. 复选框筛选:在表格中添加多个复选框,用户可以勾选需要的条件进行筛选。

这种样式适用于筛选数据较多,但是条件比较单一的情况。

4. 滑动条筛选:通过在表格中添加滑动条的方式进行筛选,用户可以根据需求滑动滑块进行筛选。

这种样式适用于需要根据数值范围进行筛选的情况。

5. 时间筛选:在表格中添加日期时间选择器,用户可以选择特定的时间范围进行筛选。

这种样式适用于需要根据时间范围进行筛选的情况,比如订单列表。

Excel中添加下拉列表,实现单元格和工作表跳转

Excel中添加下拉列表,实现单元格和工作表跳转

Excel中添加下拉列表,实现单元格和⼯作表跳转最近帮朋友研究这个问题,学会了⼀招,共享给⼤家。

1、添加下拉列表以excel2007为例,选择“数据”⼯具栏,,选择“数据有效性”,会弹出⼀个对话框,在“设置”这个标签中,按照下图所⽰选择:在“允许”中选择“序列”,取消“忽略空值”复选框,如果选中该选项,⽣成的下拉列表⾸项是空值;在“来源”中输⼊各下拉选项,以逗号分割,也可以点右端图标选择已有的单元格的值。

点击确定就可以了。

最后形成的下拉列表如下图:2、实现跳转选择上⾯做的下拉列表所在的单元格,按Alt+F11,会弹出Excel宏编辑窗⼝,在弹出的窗⼝左侧双击下拉列表所在⼯作表,在右侧弹出的空⽩窗⼝中输⼊下⾯的代码:Private Sub selectChange(ByVal Target As Range)If Target.Address = "$G$2" Then 'G2是下拉列表所在单元格的位置Sheets(Target.Value).Select '跳转到下拉列表当前选项对应的⼯作表,前提是选项值和⼯作表名要⼀致End IfEnd Sub保存代码,即完成⼯作表跳转了。

单元格跳转同这个类似,⽰例代码如下:Private Sub selectChange(ByVal Target As Range)If Target.Address = "$G$2" Then 'G2是下拉列表所在单元格的位置If Target.Value = "Sheet2" Then [C79].Select 'C79是想要跳转到的单元格位置,根据实际需要设置If Target.Value = "Sheet3" Then [D79].Select 'D79是想要跳转到的单元格位置,根据实际需要设置End IfEnd IfEnd Sub。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用自定义的CCheckComboBox类做带复选框的下拉列表1、添加Combo Box控件2.、改属性Style:DropList ;Owner Draw:Fixed ;Has string:true ;Sort:false3、头文件中添加:CCheckComboBox m_comboBox;4、DoDataExchange(CDataExchange* pDX)中添加:DDX_Control(pDX, IDC_COMBO1, m_comboBox);5、对话框初始化时添加m_comboBox.AddString(_T("1"));//加入项目m_comboBox.AddString(_T("2"));m_comboBox.AddString(_T("3"));m_comboBox.AddString(_T("4"));m_comboBox.SetCheck(0, TRUE);//设置选择状态m_comboBox.SetCheck(1, FALSE);m_comboBox.SetCheck(2, TRUE);m_comboBox.SetCheck(3, TRUE);#if !defined(AFX_CHECKCOMBOBOX_H__66750D93_95DB_11D3_9325_444553540000__INCLUDE D_)#define AFX_CHECKCOMBOBOX_H__66750D93_95DB_11D3_9325_444553540000__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000class CCheckComboBox : public CComboBox{public:CCheckComboBox();virtual ~CCheckComboBox();BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);// Selects all/unselects the specified itemINT SetCheck(INT nIndex, BOOL bFlag);// Returns checked stateBOOL GetCheck(INT nIndex);// Selects all/unselects allvoid SelectAll(BOOL bCheck = TRUE);protected:// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CCheckComboBox)protected:virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);//}}AFX_VIRTUAL//{{AFX_MSG(CCheckComboBox)afx_msg LRESULT OnCtlColorListBox(WPARAM wParam, LPARAM lParam);afx_msg LRESULT OnGetText(WPARAM wParam, LPARAM lParam);afx_msg LRESULT OnGetTextLength(WPARAM wParam, LPARAM lParam);afx_msg void OnDropDown();//}}AFX_MSGDECLARE_MESSAGE_MAP()public:CString m_strText;protected:// Routine to update the textvoid RecalcText();// The subclassed COMBOLBOX window (notice the 'L')HWND m_hListBox;// The string containing the text to displayBOOL m_bTextUpdated;// A flag used in MeasureItem, see comments thereBOOL m_bItemHeightSet;};///////////////////////////////////////////////////////////////////////////////{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif// !defined(AFX_CHECKCOMBOBOX_H__66750D93_95DB_11D3_9325_444553540000__INCLUDED _)/** CheckComboBox.cpp **/// CheckComboBox.cpp//// Written by Magnus Egelberg (magnus.egelberg@lundalogik.se)//// Copyright (C) 1999, Lundalogik AB, Sweden. All rights reserved.////#include "stdafx.h"// #include "CheckCombo.h"#include "CheckComboBox.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifstatic WNDPROC m_pWndProc = 0;static CCheckComboBox *m_pComboBox = 0;BEGIN_MESSAGE_MAP(CCheckComboBox, CComboBox)//{{AFX_MSG_MAP(CCheckComboBox)ON_MESSAGE(WM_CTLCOLORLISTBOX, OnCtlColorListBox)ON_MESSAGE(WM_GETTEXT, OnGetText)ON_MESSAGE(WM_GETTEXTLENGTH, OnGetTextLength)ON_CONTROL_REFLECT(CBN_DROPDOWN, OnDropDown)//}}AFX_MSG_MAPEND_MESSAGE_MAP()//// The subclassed COMBOLBOX message handler//extern "C" LRESULT FAR PASCAL ComboBoxListBoxProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam){switch (nMsg) {case WM_RBUTTONDOWN: {// If you want to select all/unselect all using the// right button, remove this ifdef. Personally, I don't really like it #if FALSEif (m_pComboBox != 0) {INT nCount = m_pComboBox->GetCount();INT nSelCount = 0;for (INT i = 0; i < nCount; i++) {if (m_pComboBox->GetCheck(i))nSelCount++;}m_pComboBox->SelectAll(nSelCount != nCount);// Make sure to invalidate this window as wellInvalidateRect(hWnd, 0, FALSE);m_pComboBox->GetParent()->SendMessage(WM_COMMAND,MAKELONG(GetWindowLong(m_pComboBox->m_hWnd, GWL_ID), CBN_SELCHANGE), (LPARAM)m_pComboBox->m_hWnd);}#endifbreak;}// Make the combobox always return -1 as the current selection. This// causes the lpDrawItemStruct->itemID in DrawItem() to be -1// when the always-visible-portion of the combo is drawncase LB_GETCURSEL: {return -1;}case WM_CHAR: {if (wParam == VK_SPACE) {// Get the current selectionINT nIndex = CallWindowProcA(m_pWndProc, hWnd, LB_GETCURSEL, wParam, lParam);CRect rcItem;SendMessage(hWnd, LB_GETITEMRECT, nIndex, (LONG)(VOID *)&rcItem);InvalidateRect(hWnd, rcItem, FALSE);// Invert the check markm_pComboBox->SetCheck(nIndex, !m_pComboBox->GetCheck(nIndex));// Notify that selection has changedm_pComboBox->GetParent()->SendMessage(WM_COMMAND,MAKELONG(GetWindowLong(m_pComboBox->m_hWnd, GWL_ID), CBN_SELCHANGE), (LPARAM)m_pComboBox->m_hWnd);return 0;}break;}case WM_LBUTTONDOWN: {CRect rcClient;GetClientRect(hWnd, rcClient);CPoint pt;pt.x = LOWORD(lParam);pt.y = HIWORD(lParam);if (PtInRect(rcClient, pt)) {INT nItemHeight = SendMessage(hWnd, LB_GETITEMHEIGHT, 0, 0);INT nTopIndex = SendMessage(hWnd, LB_GETTOPINDEX, 0, 0);// Compute which index to check/uncheckINT nIndex = nTopIndex + pt.y / nItemHeight;CRect rcItem;SendMessage(hWnd, LB_GETITEMRECT, nIndex, (LONG)(VOID *)&rcItem);if (PtInRect(rcItem, pt)) {// Invalidate this windowInvalidateRect(hWnd, rcItem, FALSE);m_pComboBox->SetCheck(nIndex, !m_pComboBox->GetCheck(nIndex));// Notify that selection has changedm_pComboBox->GetParent()->SendMessage(WM_COMMAND,MAKELONG(GetWindowLong(m_pComboBox->m_hWnd, GWL_ID), CBN_SELCHANGE), (LPARAM)m_pComboBox->m_hWnd);}}// Do the default handling now (such as close the popup// window when clicked outside)break;}case WM_LBUTTONUP: {// Don't do anything here. This causes the combobox popup// windows to remain open after a selection has been madereturn 0;}}return CallWindowProc(m_pWndProc, hWnd, nMsg, wParam, lParam);}CCheckComboBox::CCheckComboBox(){m_hListBox = 0;m_bTextUpdated = FALSE;m_bItemHeightSet = FALSE;}CCheckComboBox::~CCheckComboBox(){}BOOL CCheckComboBox::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID){// Remove the CBS_SIMPLE and CBS_DROPDOWN styles and add the one I'm designed for dwStyle &= ~0xF;dwStyle |= CBS_DROPDOWNLIST;// Make sure to use the CBS_OWNERDRAWVARIABLE styledwStyle |= CBS_OWNERDRAWVARIABLE;// Use default strings. We need the itemdata to store checkmarksdwStyle |= CBS_HASSTRINGS;return CComboBox::Create(dwStyle, rect, pParentWnd, nID);}LRESULT CCheckComboBox::OnCtlColorListBox(WPARAM wParam, LPARAM lParam){// If the listbox hasn't been subclassed yet, do so...if (m_hListBox == 0) {HWND hWnd = (HWND)lParam;if (hWnd != 0 && hWnd != m_hWnd) {// Save the listbox handlem_hListBox = hWnd;// Do the subclassingm_pWndProc = (WNDPROC)GetWindowLong(m_hListBox, GWL_WNDPROC);SetWindowLong(m_hListBox, GWL_WNDPROC, (LONG)ComboBoxListBoxProc);}}return DefWindowProc(WM_CTLCOLORLISTBOX, wParam, lParam);}void CCheckComboBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) {HDC dc = lpDrawItemStruct->hDC;CRect rcBitmap = lpDrawItemStruct->rcItem;CRect rcText = lpDrawItemStruct->rcItem;CString strText;// 0 - No check, 1 - Empty check, 2 - CheckedINT nCheck = 0;// Check if we are drawing the static portion of the comboboxif ((LONG)lpDrawItemStruct->itemID < 0) {// Make sure the m_strText member is updatedRecalcText();// Get the textstrText = m_strText;// Don't draw any boxes on this itemnCheck = 0;}// Otherwise it is one of the itemselse {GetLBText(lpDrawItemStruct->itemID, strText);nCheck = 1 + (GetItemData(lpDrawItemStruct->itemID) != 0);TEXTMETRIC metrics;GetTextMetrics(dc, &metrics);rcBitmap.left = 0;rcBitmap.right = rcBitmap.left + metrics.tmHeight + metrics.tmExternalLeading + 6;rcBitmap.top += 1;rcBitmap.bottom -= 1;rcText.left = rcBitmap.right;}if (nCheck > 0) {SetBkColor(dc, GetSysColor(COLOR_WINDOW));SetTextColor(dc, GetSysColor(COLOR_WINDOWTEXT));UINT nState = DFCS_BUTTONCHECK;if (nCheck > 1)nState |= DFCS_CHECKED;// Draw the checkmark using DrawFrameControlDrawFrameControl(dc, rcBitmap, DFC_BUTTON, nState);}if (lpDrawItemStruct->itemState & ODS_SELECTED) {SetBkColor(dc, GetSysColor(COLOR_HIGHLIGHT));SetTextColor(dc, GetSysColor(COLOR_HIGHLIGHTTEXT));}else {SetBkColor(dc, GetSysColor(COLOR_WINDOW));SetTextColor(dc, GetSysColor(COLOR_WINDOWTEXT));}// Erase and drawExtTextOut(dc, 0, 0, ETO_OPAQUE, &rcText, 0, 0, 0);DrawText(dc, ' ' + strText, strText.GetLength() + 1, &rcText,DT_SINGLELINE|DT_VCENTER|DT_END_ELLIPSIS);if ((lpDrawItemStruct->itemState & (ODS_FOCUS|ODS_SELECTED)) ==(ODS_FOCUS|ODS_SELECTED))DrawFocusRect(dc, &rcText);}void CCheckComboBox::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct) {CClientDC dc(this);CFont *pFont = dc.SelectObject(GetFont());if (pFont != 0) {TEXTMETRIC metrics;dc.GetTextMetrics(&metrics);lpMeasureItemStruct->itemHeight = metrics.tmHeight +metrics.tmExternalLeading;// An extra height of 2 looks good I think.// Otherwise the list looks a bit crowded...lpMeasureItemStruct->itemHeight += 2;// This is needed since the WM_MEASUREITEM message is sent before // MFC hooks everything up if used in i dialog. So adjust the// static portion of the combo box nowif (!m_bItemHeightSet) {m_bItemHeightSet = TRUE;SetItemHeight(-1, lpMeasureItemStruct->itemHeight);}dc.SelectObject(pFont);}}//// Make sure the combobox window handle is updated since// there may be many CCheckComboBox windows active//void CCheckComboBox::OnDropDown(){m_pComboBox = this;}//// Selects/unselects all items in the list//void CCheckComboBox::SelectAll(BOOL bCheck){INT nCount = GetCount();for (INT i = 0; i < nCount; i++)SetCheck(i, bCheck);}//// By adding this message handler, we may use CWnd::GetText()//LRESULT CCheckComboBox::OnGetText(WPARAM wParam, LPARAM lParam) {// Make sure the text is updatedRecalcText();if (lParam == 0)return 0;// Copy the 'fake' window textlstrcpyn((LPWSTR)lParam, m_strText, (INT)wParam);return m_strText.GetLength();}//// By adding this message handler, we may use CWnd::GetTextLength() //LRESULT CCheckComboBox::OnGetTextLength(WPARAM, LPARAM){// Make sure the text is updatedRecalcText();return m_strText.GetLength();}//// This routine steps thru all the items and builds// a string containing the checked items//void CCheckComboBox::RecalcText(){if (!m_bTextUpdated) {CString strText;// Get the list countINT nCount = GetCount();// Get the list separatorTCHAR szBuffer[10] = {0};GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLIST, szBuffer, sizeof(szBuffer));CString strSeparator = szBuffer;// If none found, the the ';'if (strSeparator.GetLength() == 0)strSeparator = ';';// Trim extra spacesstrSeparator.TrimRight();// And one...strSeparator += ' ';for (INT i = 0; i < nCount; i++) {if (GetItemData(i)) {CString strItem;GetLBText(i, strItem);if (!strText.IsEmpty())strText += strSeparator;strText += strItem;}}// Set the textm_strText = strText;m_bTextUpdated = TRUE;}}INT CCheckComboBox::SetCheck(INT nIndex, BOOL bFlag){INT nResult = SetItemData(nIndex, bFlag);if (nResult < 0)return nResult;// Signal that the text need updatingm_bTextUpdated = FALSE;// Redraw the windowInvalidate(FALSE);return nResult;}BOOL CCheckComboBox::GetCheck(INT nIndex) {return GetItemData(nIndex);}。

相关文档
最新文档