程序开发 > C# > Winform > 正文

C# ListView控件显示表格(自适应宽度)

亮术网 2013-09-10 本网原创

  DataGridView控件功能十分强大,显示表格也方便,但性能就没有那么高;ListView控件功能没那么强大,显示表格也要多写代码,但性能相对高一些。开发过程中,可根据需要选用;对于显示表格来说,用 ListView控件也不难,以下是两个具体实例。

  1、拉一个 ListView控件到 Form1 窗口中,双击 Form1 窗口打开后台代码文件。

  2、显示表格代码(固定列宽度):

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

  namespace ShowTable
  {
    public partial class Form1 : Form
    {
      public Form1()
      {
        InitializeComponent();
      }

      private void Form1_Load(object sender, EventArgs e)
      {
        listView1.GridLines = true;//表格是否显示网格线
        listView1.FullRowSelect = true;//是否选中整行

        

        listView1.View = View.Details;//设置显示方式
        listView1.Scrollable = true;//是否自动显示滚动条
        listView1.MultiSelect = false;//是否可以选择多行

        //添加表头(列)
        listView1.Columns.Add("产品名称", 160, HorizontalAlignment.Center);
        listView1.Columns.Add("产品型号", 100, HorizontalAlignment.Center);
        listView1.Columns.Add("价格", 100, HorizontalAlignment.Center);
        listView1.Columns.Add("数量", 100, HorizontalAlignment.Center);

        //添加表格内容
        for (int i = 0; i < 6; i++)
        {
          ListViewItem item = new ListViewItem();
          item.SubItems.Clear();

          item.SubItems[0].Text = "产品" + i.ToString();
          item.SubItems.Add(i.ToString());
          item.SubItems.Add((i + 7).ToString());
          item.SubItems.Add((i * i).ToString());
          listView1.Items.Add(item);
        }
      }
    }
  }

  显示表格效果图如图1所示:

listView显示表格

图1

?

  3、自适应列宽度代码如下:

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

  namespace ShowTable
  {
    public partial class Form1 : Form
    {
      public Form1()
      {
        InitializeComponent();
      }

      private void Form1_Load(object sender, EventArgs e)
      {
        listView1.GridLines = true;//表格是否显示网格线
        listView1.FullRowSelect = true;//是否选中整行

        

        listView1.View = View.Details;//设置显示方式
        listView1.Scrollable = true;//是否自动显示滚动条
        listView1.MultiSelect = false;//是否可以选择多行

        //添加表头(列)
        listView1.Columns.Add("ProductName", "产品名称");
        listView1.Columns.Add("SN", "产品型号");
        listView1.Columns.Add("Price", "价格");
        listView1.Columns.Add("Number", "数量");

        //添加表格内容
        for (int i = 0; i < 3; i++)
        {
          ListViewItem item = new ListViewItem();
          item.SubItems.Clear();

          item.SubItems[0].Text = "产品" + i.ToString();
          item.SubItems.Add(i.ToString());
          item.SubItems.Add((i + 7).ToString());
          item.SubItems.Add((i * i).ToString());
          listView1.Items.Add(item);
        }

        listView1.Columns["ProductName"].Width = -1;//根据内容设置宽度
        listView1.Columns["SN"].Width = -2;//根据标题设置宽度

        listView1.Columns["Price"].Width = -2;
        listView1.Columns["Number"].Width = -2;
      }
    }
  }

  效果图如图2所示:

listView表格自适应宽度

图2

  以上代码通过 Visual Studio 2010 测试,可直接复到文件运行看效果。

本文浓缩标签:ListView表格C#