按列显示列表视图,按行显示相同的列表视图
本文关键字:列表 视图 显示 | 更新日期: 2023-09-27 18:17:32
我有个任务要完成。我必须从数据库中填充一个列表视图,并显示在列明智,并在一个按钮上单击显示它在行明智…我刚刚完成了从数据库中填充列表视图。现在我如何显示它是按列显示还是按行显示。请帮帮我……这是我试图填充数据库的代码…
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);
}
}
}
您可以通过在不同的视图模式之间切换来实现类似的功能:
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
模式下,它将不得不相当宽,但一定不能高到足以显示多个项目(加上滚动条)!
如果你想切换行和列,你必须在你的数据源中这样做!