最近学习了一下winfrom的许多控件,对windows窗体界面设计有了初步的了解,而listview广泛应用于我们电脑的文件管理器中,在这里我进行一下简单的介绍一下listview图标显示方式
listview还支持四种不同的图标显示方式,分别为detail,list,largeIco,smallIco,我们可以通过右键菜单来进行设置,首先我们需要添加不同的列表图片。
// 设置小图标列表
ImageList imageList = new ImageList();
imageList.ImageSize = new Size(16, 16);
imageList.Images.Add(Properties.Resources.Ico_Folder);
imageList.Images.Add(Properties.Resources.Ico_File);
listView1.SmallImageList = imageList;
// 设置大图标列表
ImageList imageList2 = new ImageList();
imageList2.ImageSize = new Size(64, 64);
imageList2.Images.Add(Properties.Resources.Ico_Folder2);
imageList2.Images.Add(Properties.Resources.Ico_File2);
listView1.LargeImageList = imageList2;
当然啦大图标和小图标需要自己手动添加到资源里面啦,detail,list,smallIco用到的都是小图标列表,而largeIco用到的则是大图标列表。
然后我们就可以通过右键菜单来进行设置了。
private void listView1_MouseUp(object sender, MouseEventArgs e)
{
if(e.Button == MouseButtons.Right)
{
ListViewItem item = listView1.GetItemAt(e.X, e.Y);
// 根据当前的显示模式,设置菜单项的状态
View view = listView1.View;
menuViewDetail.Checked = (view == View.Details);
menuViewList.Checked = (view == View.List);
menuViewLargeIcon.Checked = (view == View.LargeIcon);
menuViewSmallIcon.Checked = (view == View.SmallIcon);
contextMenu.Show(listView1, e.Location);
}
}
// 菜单项的点击处理
private void menuViewDetail_Click(object sender, EventArgs e)
{
listView1.View = View.Details;
}
private void menuViewList_Click(object sender, EventArgs e)
{
listView1.View = View.List ;
}
private void menuViewLargeIcon_Click(object sender, EventArgs e)
{
listView1.View = View.LargeIcon;
}
private void menuViewSmallIcon_Click(object sender, EventArgs e)
{
listView1.View = View.SmallIcon;
}
这里的contextMenu是我们设置的右键菜单名,不同的点击事件也对应着不同的选项。