ListView

 
 
 
ListView
 
ListView 概述
 
ListView 控件包括 ColumnHeader( 列标题 ) ListViewItem( 数据行 )
 
ListView Columns 属性是所有 ColumnHeader( 列标题 ) 的集合。
 
ListView Items 属性是所有 ListViewItem( 数据行 ) 的集合。
 
lv.Items[0] :表示lv的第一行。
lv.Items[0].lv.Items.SubItems[0].Text: 表示lv的第一行的第一列的值。
 
lv.Items[0].Text 与lv.Items[0].SubItems[0].Text都是访问第0行第0列
 
ListView 主要属性:
FocusedItes :获取控件中当前有焦点的项。
MultiSelect :是否可以有选取多个项。
SelectedItems :选定的项。
Sorting :指定 ListView 项应遵循的排序顺序。
FullRowSelect: :设置为 .t. 时可以整行地选择数据。
HotTracking :设置为 .t. 时,鼠标所在行将以高亮度显示。
View :指法列表以哪种方式显示,包括: LargetIcon( 大图标 ) SmallIcon( 小图标 ) Details( 详细信息 ) List( 列表 ) 。默认为 LargeIcon
GridLine :设置为 .t. 时控件将显示网格线。(只作用于 Details” 视图)
Columns 所有 ColumnHeader( 列标题 ) 的集合。
Items :所有 ListViewItem( 数据行 ) 的集合。
 
ListView 添加列的两种方法:见代码:
        public   void  getListViewMsg(ListView lv)
        
{
            
//设置显示方式:详细信息
            lv.View = View.Details;
            
//显示CheckBox复选框
            lv.CheckBoxes = true;
            
//显示网格线
            lv.GridLines = true;

            
//鼠标所在行将以高亮度显示
            lv.HotTracking = true;

            
//整行地选择数据
            lv.FullRowSelect = true;
            
//建立一个标题列
            ColumnHeader nameHeader = new ColumnHeader();

            
//设置标题列的标题
            nameHeader.Text = "姓名";

            
//设置标题列的对齐方式
            nameHeader.TextAlign = HorizontalAlignment.Center;

            
//设置标题列的显示宽度
            nameHeader.Width = 100;

            
//第一种方法
            
//将nameHeader列添加到ListView的Columns中
            lv.Columns.Add(nameHeader);

            
//第二种方法
            lv.Columns.Add("性别",60,HorizontalAlignment.Center);
            lv.Columns.Add(
"年纪",60,HorizontalAlignment.Center);

            
//建数据行
            ListViewItem lstItem = new ListViewItem();

            
//添加第0列的值和添加其他列的值有区别
            lstItem.SubItems[0].Text = "张三";
            lstItem.SubItems.Add(
"");
            lstItem.SubItems.Add(
"28");

            lv.Items.Add(lstItem);

            
            lstItem 
= new ListViewItem();
            lstItem.SubItems[
0].Text = "李四";
            lstItem.SubItems.Add(
"");
            lstItem.SubItems.Add(
"23");

            lv.Items.Add(lstItem);
        }


  

例:得到指定文件夹下的文件夹及文件名列表。如下图:

 

 

using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Text;
using  System.Windows.Forms;
using  System.IO;

namespace  listview
{
    
public partial class Form1 : Form
    
{
        
public Form1()
        
{
            InitializeComponent();
            
this.ListViewSet();

        }


         
/// <summary>
         
/// ListView 设置
         
/// </summary>

         private void ListViewSet()
         
{
             
this.GetFolderTreeView(@"C:");

             
//ListView显示方式
             lv.View = View.Details;

         }



         
/// <summary>
         
/// 得到目录中的内容
         
/// </summary>

         private void GetFolderTreeView(string path)
         
{
             lv.Clear();
             
增加Item的标题,共有三个列

             
//开始更新
             lv.BeginUpdate();

                 DirectoryInfo diInfo 
= new DirectoryInfo(path);
                 DirectoryInfo[] dirs 
= diInfo.GetDirectories();
                 FileInfo[] fiInfo 
= diInfo.GetFiles();

            

             ListViewItem lviItem;
             ListViewItem.ListViewSubItem lviSubItem;

             
//目录名
             foreach (DirectoryInfo di in dirs)
             
{
                 lviItem 
= new ListViewItem();
                 lviItem.Text 
= di.Name;
                 
//得到文件夹的路径
                 lviItem.Tag = di.FullName;

                 lviSubItem 
= new ListViewItem.ListViewSubItem();

                 
//文件夹没有大小
                 lviSubItem.Text = "";
                 lviItem.SubItems.Add(lviSubItem);

                 lviSubItem 
= new ListViewItem.ListViewSubItem();
                 lviSubItem.Text 
= di.CreationTime.ToString();
                 lviItem.SubItems.Add(lviSubItem);

                 lv.Items.Add(lviItem);
             }


             
//文件名及创建时间
             foreach (FileInfo fi in fiInfo)
             
{
                 lviItem 
= new ListViewItem();
                 lviItem.Text 
= fi.Name;

                 lviSubItem 
= new ListViewItem.ListViewSubItem();
                 lviSubItem.Text 
= fi.Length.ToString();
                 lviItem.SubItems.Add(lviSubItem);

                 lviSubItem 
= new ListViewItem.ListViewSubItem();
                 lviSubItem.Text 
= fi.CreationTime.ToString();
                 lviItem.SubItems.Add(lviSubItem);

                 lv.Items.Add(lviItem);
             }

             
//结束更新
             lv.EndUpdate();
         }


         
/// <summary>
         
/// 定义变量存放路径
         
/// </summary>

         string sfileName = "";

        
/// <summary>
        
/// 在激活一项时发生
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void lv_ItemActivate(object sender, EventArgs e)
        
{
            ListView lvControl 
= (ListView)sender;
            
//Tag属性获得与用户关联的数据
            
//如:C:Program FilesKuGoo2007
            sfileName = lvControl.SelectedItems[0].Tag.ToString();
            
if (lvControl.SelectedItems[0].Text == "")
            
{
              
//  MessageBox.Show(lv.SelectedItems[0].Text);
                try
                
{
                    System.Diagnostics.Process.Start(sfileName);
                }

                
catch
                
{
                    
return;
                }

            }

            
else
            
{

                GetFolderTreeView(sfileName);
            }

        }


        
private void btnReturn_Click(object sender, EventArgs e)
        
{
               
/*
             原理:得到路径,然后截取最后一个""之前的路径,并将其路径赋给你路径变量。
             再次单击返回时,截取此变量中最后一个""之前的路径。
             当获得不到""的位置时说明到达顶层。
             
*/

            
int iPosition = sfileName.LastIndexOf("/"+ 1;
            
if (iPosition > 0)
            
{
                
string sA = sfileName.Substring(0, iPosition);
                GetFolderTreeView(sA);
                sfileName 
= sfileName.Substring(0, iPosition - 1); ;
            }

        }


        }

    }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ListView是Android中常用的控件,它可以展示一列数据,并且支持滑动、点击等交互操作。使用ListView需要自定义Adapter来管理数据和界面的显示。 以下是一个简单的ListView使用示例: 1. 定义ListView布局文件,例如listview_layout.xml: ``` <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 定义ListView的每一个item布局文件,例如list_item_layout.xml: ``` <TextView android:id="@+id/item_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" android:padding="16dp" /> ``` 3. 定义Adapter,例如MyAdapter.java: ``` public class MyAdapter extends BaseAdapter { private List<String> mDataList; public MyAdapter(List<String> dataList) { mDataList = dataList; } @Override public int getCount() { return mDataList.size(); } @Override public Object getItem(int position) { return mDataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_layout, parent, false); holder = new ViewHolder(); holder.text = convertView.findViewById(R.id.item_text); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } String data = mDataList.get(position); holder.text.setText(data); return convertView; } private static class ViewHolder { TextView text; } } ``` 4. 在Activity中使用ListView: ``` public class MainActivity extends AppCompatActivity { private ListView mListView; private MyAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = findViewById(R.id.list_view); List<String> dataList = new ArrayList<>(); for (int i = 0; i < 20; i++) { dataList.add("Item " + i); } mAdapter = new MyAdapter(dataList); mListView.setAdapter(mAdapter); } } ``` 这样就完成了一个简单的ListView展示。当数据量较大时,可以使用RecyclerView来优化性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值