<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>列表框</title>
	<atom:link href="https://www.aitaocui.cn/tag/259020/feed" rel="self" type="application/rss+xml" />
	<link>https://www.aitaocui.cn</link>
	<description>翡翠玉石爱好者聚集地</description>
	<lastBuildDate>Mon, 28 Nov 2022 09:32:13 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.aitaocui.cn/wp-content/uploads/2022/11/taocui.png</url>
	<title>列表框</title>
	<link>https://www.aitaocui.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>列表框(软件工具)</title>
		<link>https://www.aitaocui.cn/article/371195.html</link>
					<comments>https://www.aitaocui.cn/article/371195.html#respond</comments>
		
		<dc:creator><![CDATA[水滴石穿]]></dc:creator>
		<pubDate>Mon, 28 Nov 2022 09:32:13 +0000</pubDate>
				<category><![CDATA[知识]]></category>
		<category><![CDATA[列表框]]></category>
		<guid isPermaLink="false">https://www.aitaocui.cn/?p=371195</guid>

					<description><![CDATA[列表框（ListBox）用于提供一组条目（数据项），用户可以用鼠标选择其中一个或者多个条目，但是不能直接编辑列表框的数据。当列表框不能同时显示所有项目时候，他将自动添加滚动条，使用...]]></description>
										<content:encoded><![CDATA[</p>
<article>
<p>列表框（ListBox）用于提供一组条目（数据项），用户可以用鼠标选择其中一个或者多个条目，但是不能直接编辑列表框的数据。当列表框不能同时显示所有项目时候，他将自动添加滚动条，使用户可以滚动查阅所有选项。</p>
<p>列表框（LstName）中是人物的名称，用户选择不同的名字，下面的标签（LblShow）自动显示此人的相关信息。列表框的特点是：列表框中的项目是通过程序插入到其中的，用户无法向清单中输入数据，当选择其中的项目，并在用户单击一个按钮或者执行某个操作时，由应用程序完成对指定项目的具体操作。</p>
</article>
<article>
<h1>示例</h1>
<p>列表框的特点是：列表框中的项目是通过程序插入到其中的，用户无法向清单中输入数据，当选择其中的项目，并在用户单击一个按钮或者执行某个操作时，由应用程序完成对指定项目的具体操作。下面这个例子充分说明了列表框的这个特点，并介绍了列表框（ListBox）的常用属性。</p>
<p>为了学习方便，提供的源码已经作了详细的中文注释，看看源码框中的代码：</p>
<p>Option Explicit</p>
<p>&#x27; 简单的列表框ListBox的例子</p>
<p>&#x27;&#8212;&#8212;名称&#8212;&#8212;&#8212;&#8212;-作用&#8212;&#8212;&#8212;&#8212;</p>
<p>&#x27; List1、List2 列表框</p>
<p>&#x27; LefttoRightCmd 移动所选项目到另一个列表框（左到右）</p>
<p>&#x27; RighttoLeftCmd 移动所选项目到另一个列表框（右到左）</p>
<p>&#x27; LefttoRightCmd 移动所选项目到另一个列表框（左到右）</p>
<p>&#x27; RighttoLeftCmd 移动所选项目到另一个列表框（右到左）</p>
<p>&#x27; List1.deleteString 删除列表框List1中所选项目</p>
<p>&#x27; List2.deleteString 删除列表框List2中所选项目</p>
<p>&#x27; List1.AddString 给列表框List1增加新项目</p>
<p>&#x27; List2.AddString给列表框List2增加新项目</p>
<p>&#x27; List1.ResetContent清空列表框List1</p>
<p>&#x27; List2.ResetContent 清空列表框List2</p>
<p>&#x27;————名称————属性设置———</p>
<p>&#x27; List1列表框 Sorted属性设为“False”</p>
<p>&#x27; List2列表框 Sorted属性设为“True”</p>
<p>&#x27; MultiSelect属性设置为2</p>
<p>&#x27; 即List2控件中的项目总是排序的</p>
<p>&#x27;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Private Sub Form_Load()</p>
<p>&#x27;装载窗体时，给列表中的元素赋值</p>
<p>List1.AddItem “China”</p>
<p>List1.AddItem “America”</p>
<p>List1.AddItem “Japan”</p>
<p>List2.AddItem “Soccer”</p>
<p>List2.AddItem “Tennis”</p>
<p>List2.AddItem “Basketball”</p>
<p>End Sub</p>
<p>Private Sub LefttoRightCmd_Click()</p>
<p>&#x27;将左边列表中所选元素移动到右边列表中</p>
<p>If List1.ListIndex &gt;；= 0 Then</p>
<p>&#x27;在右边列表中增加新元素</p>
<p>List2.AddItem List1.Text</p>
<p>&#x27;删除左边列表中的所选元素</p>
<p>List1.RemoveItem List1.ListIndex</p>
<p>End If</p>
<p>End Sub</p>
<p>Private Sub List1AddCmd_Click()</p>
<p>Dim ListItem As String</p>
<p>&#x27;</p>
<p>ListItem = InputBox(“在列表中输入新项目”)</p>
<p>&#x27;向列表中加入新项目</p>
<p>If Trim(ListItem) &lt;；&gt;； ““ Then</p>
<p>&#x27;Trim（）作用是清除ListItem字符串内的空格</p>
<p>List1.AddItem ListItem</p>
<p>End If</p>
<p>End Sub</p>
<p>Private Sub List1ClearCmd_Click()</p>
<p>&#x27;清空列表</p>
<p>List1.Clear</p>
<p>End Sub</p>
<p>Private Sub List1MoveCmd_Click()</p>
<p>Dim i As Integer</p>
<p>&#x27;判断列表框是否只有一个项目被选中</p>
<p>If List1.SelCount = 1 Then</p>
<p>List1.RemoveItem List1.ListIndex</p>
<p>ElseIf List1.ListCount &gt;； 1 Then</p>
<p>&#x27;删除列表框中的所选中的多个项目</p>
<p>For i = List1.ListCount &#8211; 1 To 0 Step -1</p>
<p>&#x27;ListCount返回列表框中的项目总数</p>
<p>&#x27;ListCount-1是列表框中最后一个项目的索引号</p>
<p>&#x27;判断该项目是否被选中，Selected()返回布尔值</p>
<p>If List1.Selected(i) Then</p>
<p>&#x27;删除索引号为i的项目</p>
<p>List1.RemoveItem i</p>
<p>End If</p>
<p>Next</p>
<p>End If</p>
<p>End Sub</p>
<p>Private Sub List2AddCmd_Click()</p>
<p>&#x27;定义变量，以接收输入的字符串</p>
<p>Dim ListItem As String</p>
<p>ListItem = InputBox(”在列表中输入新项目“)</p>
<p>If Trim(ListItem) &lt;；&gt;； ““ Then</p>
<p>&#x27;将字符串增加到列表中</p>
<p>List2.AddItem ListItem</p>
<p>End If</p>
<p>End Sub</p>
<p>Private Sub List2ClearCmd_Click()</p>
<p>&#x27;清空列表</p>
<p>List2.Clear</p>
<p>End Sub</p>
<p>Private Sub List2MoveCmd_Click()</p>
<p>Dim i As Integer</p>
<p>&#x27;判断所选 元素是否只有一个</p>
<p>If List2.SelCount = 1 Then</p>
<p>List2.RemoveItem List2.ListIndex</p>
<p>&#x27;如果所选 元素大于1，则按下列操作进行</p>
<p>ElseIf List2.ListCount &gt;； 1 Then</p>
<p>For i = List2.ListCount &#8211; 1 To 0 Step -1</p>
<p>If List2.Selected(i) Then</p>
<p>List2.RemoveItem i</p>
<p>End If</p>
<p>Next i</p>
<p>End If</p>
<p>End Sub</p>
<p>Private Sub RighttoLeftCmd_Click()</p>
<p>Dim i As Integer</p>
<p>&#x27;判断选中的元素有几个</p>
<p>If List2.SelCount = 1 Then</p>
<p>List1.AddItem List2.Text</p>
<p>List2.RemoveItem List2.ListIndex</p>
<p>&#x27;当选中的元素大于一个时</p>
<p>ElseIf List2.SelCount &gt;； 1 Then</p>
<p>For i = List2.ListCount &#8211; 1 To 0 Step -1</p>
<p>&#x27;如果该元素被选中，则将其从右边移至左边</p>
<p>If List2.Selected(i) Then</p>
<p>List1.AddItem List2.List(i)</p>
<p>List2.RemoveItem i</p>
<p>End If</p>
<p>Next i</p>
<p>End If</p>
<p>End Sub</p>
<p>这个例子包含一个窗体，窗体中有两个列表框（List1、List2）和八个按钮，界面如下：</p>
<p>（图）窗体（FormListBox）</p>
<p>我们首先新建一个标准的EXE工程，添加一个窗体，并把列表框和按钮控件添加到窗体上。各按钮控件的名称如下表：</p>
<p>按钮名称 名称属性 按钮名称 名称属性</p>
<p>删除所选项目（左） List1movecmd 删除所选项目（右） List2movecmd</p>
<p>增加新项目（左） List1addcmd 增加新项目（右） List2addcmd</p>
<p>清除弄表（左） List1clearcmd 清除列表（右） List2clearcmd</p>
<p>右箭头 lefttorightcmd 左箭头 Righttoleftcmd</p>
<p>&#x27; List1列表框 Sorted属性设为“False” &#x27; List2列表框 Sorted属性设为“True” &#x27; MultiSelect属性设置为2 &#x27; 即List2控件中的项目总是排序的</p>
<p>在属性窗口中，将List1列表框 Sorted属性设为“False”；List2列表框 Sorted属性设为“True”，MultiSelect属性设置为2，即List2控件中的项目总是排序的。</p>
<p>下一步我们为各控件添加相应的程序。</p>
<p>其中：</p>
<p>List1.AddItem “China” 是将“China”添加到列表框中。</p>
<p>List1.ListIndex 返回的是列表框List1中当前选择项目的索引号码。</p>
<p>List1.ListCount 返回的是列表框List1中项目总数。</p>
<p>List1.ListCount &#8211; 1 返回列表框List1中最后一个项目的索引号。</p>
<p>List1.Selected() 返回的是一个项目的选择状态，返回的是布尔值。</p>
<p>代码写好之后，我们就可以保存工程，然后按“Ctrl+F5”键，测试检验一下我们的程序了。在这个小程序中，包含了列表框中的一般常用属性和方法。</p>
<h1>控件</h1>
<p>Visual Basic 提供了列表框控件（ListBox）以供用户进行多个项目的选择。在工具箱面板上，列表框控件的图标如图一所示：</p>
<p>图一</p>
<p>默认的列表框控件名为 ListX（X为阿拉伯数字 1、2、3，等等），规则的命名方式为：LstX（X为用户自定义的名字，如 LstName、LstUser，等等）。</p>
<p>一、列表框控件的主要属性：</p>
<p>列表框中可以有多个项目供选择，用户通过单击某一项选择自己所需要的项目，如果项目太多，超出了列表框设计时的长度，则自动增加竖向滚动条，如图二：</p>
<p>图二</p>
<p>除了一些常见的诸如 Font 、Height、Left、Width、Enabled、Name 等属性外，列表框还有一些特殊的属性：</p>
<p>1、List（列表）属性：</p>
<p>List 是列表框最重要的属性之一，其作用是罗列或设置表项中的内容。可以在界面设置时直接输入内容，如图三：</p>
<p>图三</p>
<p>在程序运行时，列表框中所有的选项，都可以通过 List(下标值) 的形式表示。比如列表框中的第一项，用 List(0)表示，列表框中的第二项，用 List(1)表示，列表框中的第十项，用 List(9)表示，以此类推。</p>
<p>大家注意，列表框中的第一项，是 List(0) ，而不是 List(1) 。</p>
<p>&lt;1&gt;、List() 属性的使用是非常灵活的，比如我们要从如图二的列表框（Lst1）中取出第三项内容，可以用下面的代码做到：A$ = Lst1.List(2)</p>
<p>其中，A 是一个变量；$ 指明了这个变量的类型：字符串型；这句话的意思是：将 Lst1 列表框中第三项（List(2)）取出来然后赋值给字符串变量 A 。</p>
<p>象上面这种赋值办法，在 VB 中是非常普遍的，又如以前我们学到的：</p>
<p>LblShow.Caption = “Visual Basic”，这句话是指将 Visual Basic 这个字符串赋值给 LblShow 标签控件并作为其标题。</p>
<p>紧接上面的内容，假设我们用一个标签显示出刚才取出的表项：</p>
<p>LblShow.Caption = A$</p>
<p>那么显示的结果正是我们取出的选项。</p>
<p>可见，取出某个列表框中的某一表项并将其赋值给某个变量，代码如下：</p>
<p>字符串变量= 列表框名称.List(X) ，其中，X 是下标。</p>
<p>&lt;2&gt;、通过 List() 改变原有表项：假设我们要将如图二的列表框中第三项内容改为“跟我学 VB”，只需输入下面的代码即可：</p>
<p>Lst1.List(2) = “跟我学 VB”</p>
<p>上句话的意思是将“跟我学 VB”字符串赋值给 Lst1 并作为其第三项的内容。</p>
<p>结果如图四：</p>
<p>图四</p>
<p>可见，要修改某个列表框中某一选项：</p>
<p>列表框名称.List(X) = “欲修改成的内容” ，其中，X 是下标。</p>
<p>2、ListCount 属性：</p>
<p>本属性返回列表框表项数量的数值，只能在程序运行时起作用。比如：一个有着四种选项的列表框，那么 ListCount 就为 4 ；一个列表框有五个选项，那么 ListCount 就为 5 。</p>
<p>返回一个列表框的表项数量值并将其赋值给某个变量，代码如下：</p>
<p>数值型变量 = 列表框名称.ListCount</p>
<p>比如要返回图二列表框的 ListCount：</p>
<p>X% = Lst1.ListCount ，其中，X 是变量，% 表示X是整数类型的变量。</p>
<p>3、ListIndex（索引）属性：</p>
<p>本属性用来返回或设置控件中当前选择项目的索引号，只能在程序运行时使用。第一个选项的索引号是 0 ，第二个选项的索引号是 1 ，第三个选项的索引号是 2 ，依此类推，ListCount 始终比最大的 ListIndex 值大 1 。当列表框没有选择项目时， ListIndex 值为 -1 。</p>
<p>在程序中设置 ListIndex 后，被选中的项目呈反相显示，如图五：</p>
<p>图五</p>
<p>在列表框控件的所有属性中，本属性是非常重要的，因为一个列表，事先你并不知道用户将要选择哪一条项目，这时，只有根据 ListIndex 返回的数值，我们才能让程序针对用户的选择做出适当的反应。</p>
<p>返回 ListIndex 的代码如下：</p>
<p>X% = 列表框名称.ListIndex</p>
<p>联想：根据前面的知识我们知道，要取出第三项内容，代码如下：</p>
<p>A$ = Lst1.List(2)</p>
<p>假设现在选中的是第三项，但我们事先不知道用户要选择这一项，那么又应该如何访问这第三项呢？</p>
<p>代码如下：A$ = Lst1.List(Lst1.ListIndex) 此时，Lst1.ListIndex 等同于 2 。</p>
<p>仔细想一想，为何要如此书写？</p>
<p>4、Columns（列）属性：</p>
<p>本属性用来确定列表框的列数，当值为 0 时，所有项目呈单列显示；当值为 1 或者大于 1 ，项目呈多列显示。Columns 属性只能在界面设置时指定。如图六：</p>
<p>图六</p>
<p>默认状态时，如果项目的总高度大于列表框的高度，那么列表框右边会自动增加一个垂直滚动条，用来上下移动列表框。</p>
<p>5、MultiSelect（多重选择）属性：</p>
<p>本属性决定了选项框中的内容是否可以进行多重选择，只能在界面设置时指定，程序运行时不能予以修改。如图七：</p>
<p>图七</p>
<p>MultiSelect 共有三个值：0 ，不允许多项选择，如果选择了一项就不能选择其他项；1 ，允许多重选择，但功能不如 2 ，可以用鼠标或空格选择；2 ，功能最强大的多重选择，可以结合 Shift 键或 Ctrl 键完成多个表项的多重选择。方法是：单击所要选择的范围的第一项，然后按住 Shift 键，再单击选择范围最后一项。</p>
<p>6、Style（类型）属性：</p>
<p>本属性决定了列表框的外观，共有两个值：1 ，Standard ，即为标准型，如图八：</p>
<p>图八</p>
<p>2 ，CheckBox ，复选框型，如图九：</p>
<p>图九</p>
<p>本属性只能在界面设置时确定。</p>
<p>7、Selected（选中）属性：</p>
<p>本属性返回或设置在列表框控件中某项目是否选中的状态。选中时，值为 True ；未被选中，值为 False 。</p>
<p>代码规则如下： 列表框名称.Selected(索引值) = True/False</p>
<p>注意，索引号其实是项目的下标值，如果是第三项，那么索引值是 2 ，如果是第十项，那么索引值是 9 ，以此类推。</p>
<p>例一：</p>
<p>有如图十这样一个应用程序：</p>
<p>图十</p>
<p>列表框（LstName）中是人物的名称，用户选择不同的名字，下面的标签（LblShow）自动显示此人的相关信息。</p>
<p>源代码如下：</p>
<p>Private Sub LstName_Click()</p>
<p>If LstName.Selected(0) = True Then</p>
<p>LblShow.Caption = “马拉多纳是阿根廷的球星”</p>
<p>ElseIf LstName.Selected(1) = True Then</p>
<p>LblShow.Caption = “贝肯鲍尔是德国的球星”</p>
<p>ElseIf LstName.Selected(2) = True Then</p>
<p>LblShow.Caption = “罗纳尔多是巴西的球星”</p>
<p>Else</p>
<p>LblShow.Caption = “贝克汉姆是英国的球星”</p>
<p>End If</p>
<p>End Sub</p>
<p>本程序是根据用户选择的不同，在标签按件中显示不同的信息；另外，我们用到了前面学到的 If ···Then··· ElseIf··· End If 语法。</p>
<p>8、SelCount（选中项目数量）：</p>
<p>只有当 MultiSelect 属性值为 1 或 2 时，本属性才起作用，用来读取列表框中所选项目的数目，通常与 Selected 一起使用，以处理控件中的所选项目。</p>
<p>二、列表框控件的主要事件：</p>
<p>列表框控件主要接收 Click 与 DblClick ，如例一。</p>
<p>三、列表框控件的方法：</p>
<p>1、增加项目：AddItem</p>
<p>用 AddItem 可以为列表框增加项目，代码规则如下：</p>
<p>列表框名称.AddItem 欲增项目[，索引值]</p>
<p>其中，索引值是可选项，是指欲增项目放到原列表框中的第几项，如放在第三项，那么索引值是 2 ，放在第五项，索引值则是 4 。</p>
<p>假设我们要在如图十这样的程序中增加项目：LstName.AddItem “郝海东”，4</p>
<p>2、清除所有：Clear</p>
<p>用 Clear 可以清除列表框中所有的内容，代码如下：</p>
<p>列表框名称.Clear</p>
<p>3、删除选项：RemoveItem</p>
<p>此方法可以删除列表框中指定的项目，代码如下：</p>
<p>列表框名称.RemoveItem 索引值</p>
<p>其中，索引值是必须的，表示欲删除哪一个项目。</p>
<p>同样如图十的程序，假设我们要删除第三个项目，代码如下：</p>
<p>LstName.RemoveItem 2</p>
<p>联想：对于任意一个列表框，要删除已经选中的项目，代码如下：</p>
<p>列表框名称.RemoveItem 列表框名称.ListIndex</p>
<p>比如：LstName.RemoveItem LstName.ListIndex</p>
<p>列表框控件在工具箱上的基础控件。很多第三方控件也对列表框做出了扩充，提供了更多地功能，以满足不同的需求。只要将dll添加到工具箱就可以使用。</p>
</article>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aitaocui.cn/article/371195.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
