vb comboBOx和listBox两个属性有啥不同?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb comboBOx和listBox两个属性有啥不同?相关的知识,希望对你有一定的参考价值。
参考技术AList,是ListBox中所有的列表集合,是一个数组。
例如List1.List(0)就代表List1中的第一个列表项,
Text代表ListBox当前选中项目文本,与Lit1.List(List1.ListIndex)效果一样。
示例:
列表框的特点是:列表框中的项目是通过程序插入到其中的,用户无法向清单中输入数据,当选择其中的项目,并在用户单击一个按钮或者执行某个操作时,由应用程序完成对指定项目的具体操作。下面这个例子充分说明了列表框的这个特点,并介绍了列表框(ListBox)的常用属性。
为了学习方便,提供的源码已经作了详细的中文注释,看看源码框中的代码:
Option Explicit
' 简单的列表框ListBox的例子
'------名称-------------作用------------
' List1、List2 列表框
' LefttoRightCmd 移动所选项目到另一个列表框(左到右)
' RighttoLeftCmd 移动所选项目到另一个列表框(右到左)
' LefttoRightCmd 移动所选项目到另一个列表框(左到右)
' RighttoLeftCmd 移动所选项目到另一个列表框(右到左)
' List1.deleteString 删除列表框List1中所选项目
' List2.deleteString 删除列表框List2中所选项目
' List1.AddString 给列表框List1增加新项目
' List2.AddString给列表框List2增加新项目
' List1.ResetContent清空列表框List1
' List2.ResetContent 清空列表框List2
'————名称————属性设置———
' List1列表框 Sorted属性设为“False”
' List2列表框 Sorted属性设为“True”
' MultiSelect属性设置为2
' 即List2控件中的项目总是排序的
'--------------------------------------
Private Sub Form_Load()
'装载窗体时,给列表中的元素赋值
List1.AddItem “China”
List1.AddItem “America”
List1.AddItem “Japan”
List2.AddItem “Soccer”
List2.AddItem “Tennis”
List2.AddItem “Basketball”
End Sub
Private Sub LefttoRightCmd_Click()
'将左边列表中所选元素移动到右边列表中
If List1.ListIndex >;= 0 Then
'在右边列表中增加新元素
List2.AddItem List1.Text
'删除左边列表中的所选元素
List1.RemoveItem List1.ListIndex
End If
End Sub
Private Sub List1AddCmd_Click()
Dim ListItem As String
'
ListItem = InputBox(“在列表中输入新项目”)
'向列表中加入新项目
If Trim(ListItem) <;>; ““ Then
'Trim()作用是清除ListItem字符串内的空格
List1.AddItem ListItem
End If
End Sub
Private Sub List1ClearCmd_Click()
'清空列表
List1.Clear
End Sub
Private Sub List1MoveCmd_Click()
Dim i As Integer
'判断列表框是否只有一个项目被选中
If List1.SelCount = 1 Then
List1.RemoveItem List1.ListIndex
ElseIf List1.ListCount >; 1 Then
'删除列表框中的所选中的多个项目
For i = List1.ListCount - 1 To 0 Step -1
'ListCount返回列表框中的项目总数
'ListCount-1是列表框中最后一个项目的索引号
'判断该项目是否被选中,Selected()返回布尔值
ListBox 和 ListView 有啥区别
【中文标题】ListBox 和 ListView 有啥区别【英文标题】:What is The difference between ListBox and ListViewListBox 和 ListView 有什么区别 【发布时间】:2011-06-09 20:56:17 【问题描述】:WPF的ListBox和ListView有什么区别?我找不到它们的属性有任何显着差异。有不同的典型用途吗?
【问题讨论】:
答案中未提及:ListView
有列标题,ListBox
没有
【参考方案1】:
ListView
基本上类似于ListBox
(并从它继承),但它也有一个View
属性。此属性允许您指定显示项目的预定义方式。 BCL (Base Class Library) 中唯一的预定义视图是GridView
,但您可以轻松地使用create your own。
另一个区别是默认选择模式:Single
对应 ListBox
,而 Extended
对应 ListView
【讨论】:
【参考方案2】:ListView
让您为其定义一组views
,并为您提供一种本地方式(WPF
binding
支持)通过使用定义的views
来控制ListView
的显示。
示例:
XAML
<ListView ItemsSource="Binding list" Name="listv" MouseEnter="listv_MouseEnter" MouseLeave="listv_MouseLeave">
<ListView.Resources>
<GridView x:Key="one">
<GridViewColumn Header="ID" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="Binding id" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Name" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="Binding name" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
<GridView x:Key="two">
<GridViewColumn Header="Name" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="Binding name" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.Resources>
<ListView.Style>
<Style TargetType="ListView">
<Style.Triggers>
<DataTrigger Binding="Binding ViewType" Value="1">
<Setter Property="View" Value="StaticResource one" />
</DataTrigger>
</Style.Triggers>
<Setter Property="View" Value="StaticResource two" />
</Style>
</ListView.Style>
Code Behind:
private int viewType;
public int ViewType
get return viewType;
set
viewType = value;
UpdateProperty("ViewType");
private void listv_MouseEnter(object sender, MouseEventArgs e)
ViewType = 1;
private void listv_MouseLeave(object sender, MouseEventArgs e)
ViewType = 2;
输出:
普通视图:上面的视图 2 XAML
MouseOver 视图:在上方查看 1 XAML
如果您尝试在
ListBox
中实现上述目标,您可能最终会为ControlTempalate
/ItemTemplate
或ListBox
编写更多代码。
【讨论】:
“隐藏代码”部分在 2019 年 4 月 29 日是无效代码(额外的右括号和 UpgradeProperty)。可以改正吗? 已经正确了。 UpdateProperty 是一种通知属性更改的方法。对你来说可能完全不同。使用您用来通知属性更改的任何方法。还有哪个额外的大括号? 谢谢你的解释。你是对的。我想我被大括号的位置迷住了。确实没有多余的大括号。如果您同意,我会重新检查一些代码。【参考方案3】:Listview 派生自列表框控件。 一个最重要的区别是 listview 默认使用扩展选择模式。 listview 还添加了一个名为 view 的属性,它使您能够以比自定义项目面板更丰富的方式自定义视图。 带有gridview 的listview 的一个真实示例是文件资源管理器的详细信息视图。 带有网格视图的 Listview 是一个功能较弱的数据网格。 引入datagrid控件后listview就失去了它的重要性。
【讨论】:
以上是关于vb comboBOx和listBox两个属性有啥不同?的主要内容,如果未能解决你的问题,请参考以下文章
〝WPF〞中的〝ListBox〞、〝ListView〞和〝DataGridView〞有啥区别?