以列表方式显示Listview列,并在按钮上单击以行方式显示相同的列表视图

时间:2015-10-14 08:19:10

标签: c# listview

我有一个任务要完成..我必须从数据库中填充一个列表视图并按列显示,然后在按钮上单击显示它...我刚刚完成从数据库填充列表视图。现在我如何以列方式和行方式显示它...请帮帮我... 这是我试图填充数据库的代码......

public partial class DtposMDIParentSystem : Form
{
    List<object[]> result = new List<object[]>();

    public DtposMDIParentSystem()
    {
        InitializeComponent();

        //create the database connection
        OleDbConnection aConnection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\AP_AE\Desktop\DTPOS_APP\DataBase\DtposDatabase.accdb;");

        //create the command object and store the sql query
        OleDbCommand aCommand = new OleDbCommand("SELECT * FROM Food", aConnection);

        try
        {
            aConnection.Open();

            //create the datareader object to connect to table
            OleDbDataReader reader = aCommand.ExecuteReader();

            int i = 0;
            while (reader.Read())
            {
                result.Add(new Object[reader.FieldCount]);
                reader.GetValues(result[i]);
            }
            reader.Close();
            aConnection.Close();
        }
        catch (InvalidOperationException ex)
        {
            MessageBox.Show("Invalid Masseage = " + ex.Message);
        }

    }

     private void cmdOlives_Click(object sender, EventArgs e)
    {
        if (result.Count > 0)
            {
                string temp = "";

                for (int i = 0; i < result[1].Length; i++)
                {
                    temp += result[1][i] + "     ";
                }
                TableOrderListView.Items.Add(temp);
            }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以通过在不同的视图模式之间切换来实现类似的功能:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    if (checkBox1.Checked)
    {
        listView1.View = View.Details;
        listView1.HeaderStyle = ColumnHeaderStyle.None;

        listView1.Columns[0].Width = listView1.ClientSize.Width - 25;
        listView1.Height = 244;
    }
    else
    {
        listView1.View = View.List;

        listView1.Columns[0].Width = 50;
        listView1.Height = 44;
    }
}

您需要为Column视图添加一个 Details才能正常工作!

请注意,您必须调整Listview的大小:

  • Details模式下,它需要足够高才能显示多个项目
  • List模式下,它必须相当宽,但不能高到足以显示多个项目(加上滚动条)!

如果您的意思是切换行和列,则必须在数据源中执行此操作!