我面临列表视图列的调整大小问题。如果你锚/对接listview转普通winform比listview锚点或对接效果好。我的意思是,当 winform 最大化时,listview 将调整大小并适合 winform,但您在其上设计的列不会随 listview 调整大小。
我的问题是:有没有办法用listview调整listview的列大小以适应winform大小?
列表视图设计代码:
private void Form1_Load(object sender, EventArgs e)
{
listView1.View = View.Details;
listView1.LabelEdit = true;
listView1.BackColor = Color.GreenYellow;
listView1.Columns.Add("Date", 100, HorizontalAlignment.Left);
listView1.Columns.Add("TransID", 50, HorizontalAlignment.Left);
listView1.Columns.Add("voucher", 100, HorizontalAlignment.Right);
listView1.Columns.Add("particulars", 300, HorizontalAlignment.Left);
listView1.Columns.Add("deposit", 100, HorizontalAlignment.Right);
listView1.Columns.Add("withdrawal", 100, HorizontalAlignment.Right);
string connstr = "server=.;initial catalog=DataBase;uid=UID;pwd=PWD";
SqlConnection con = new SqlConnection(connstr);
con.Open();
listView1.Items.Clear();
listView1.Refresh();
string sql = "select date=convert(varchar,date,103),transID,max(particulars)as particulars,sum(deposit)as deposit,sum(withdrawal) as withdrawal,voucher from debank group by date,transID,voucher";
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataAdapter dap = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
dap.Fill(ds);
DataTable dt = ds.Tables[0];
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
ListViewItem lvi = new ListViewItem(dr["date"].ToString());
lvi.SubItems.Add(dr["transID"].ToString());
lvi.SubItems.Add(dr["voucher"].ToString());
lvi.SubItems.Add(dr["particulars"].ToString());
lvi.SubItems.Add(dr["deposit"].ToString());
lvi.SubItems.Add(dr["withdrawal"].ToString());
listView1.Items.Add(lvi);
listView1.FullRowSelect = true;
}
SizeLastColumn(listView1);
}