vb comboBOx和listBox两个属性有啥不同?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb comboBOx和listBox两个属性有啥不同?相关的知识,希望对你有一定的参考价值。

参考技术A

List,是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/ItemTemplateListBox 编写更多代码。

【讨论】:

“隐藏代码”部分在 2019 年 4 月 29 日是无效代码(额外的右括号和 UpgradeProperty)。可以改正吗? 已经正确了。 UpdateProperty 是一种通知属性更改的方法。对你来说可能完全不同。使用您用来通知属性更改的任何方法。还有哪个额外的大括号? 谢谢你的解释。你是对的。我想我被大括号的位置迷住了。确实没有多余的大括号。如果您同意,我会重新检查一些代码。【参考方案3】:

Listview 派生自列表框控件。 一个最重要的区别是 listview 默认使用扩展选择模式。 listview 还添加了一个名为 view 的属性,它使您能够以比自定义项目面板更丰富的方式自定义视图。 带有gridview 的listview 的一个真实示例是文件资源管理器的详细信息视图。 带有网格视图的 Listview 是一个功能较弱的数据网格。 引入datagrid控件后listview就失去了它的重要性。

【讨论】:

以上是关于vb comboBOx和listBox两个属性有啥不同?的主要内容,如果未能解决你的问题,请参考以下文章

VB combobox怎么实现可多选下拉列表中的内容?

〝WPF〞中的〝ListBox〞、〝ListView〞和〝DataGridView〞有啥区别?

WPF中的ListBox,ListView和DataGridView有啥区别

VB列表框属性的问题

listview和listbox有啥区别?

winform中的ListBox和ComboBox绑定数据用法实例